public static void ClassificarAnimal(Animal animal) { // Esse @ é para que possamos usar o nome interface para a variável, que é uma palavra reservada do C#! var classe = animal.GetType(); var @interface = classe.GetInterfaces().FirstOrDefault(); if ((typeof(IAquatico)).Equals(@interface)) { System.Console.WriteLine($":::{classe.Name} pode ir para a Piscina:::"); } else if ((typeof(IArboricula)).Equals(@interface)) { System.Console.WriteLine($":::{classe.Name} pode ir para a Casa na Árvore:::"); } else if ((typeof(IBranquiado)).Equals(@interface)) { System.Console.WriteLine($":::{classe.Name} pode ir para o Aquário:::"); } else if ((typeof(IQuionofilo)).Equals(@interface)) { System.Console.WriteLine($":::{classe.Name} pode ir para a Piscina Gelada:::"); } else if ((typeof(ITerrestre)).Equals(@interface)) { System.Console.WriteLine($":::{classe.Name} pode ir para os Pastos ou Caverna de Pedra:::"); } else if ((typeof(IVoador)).Equals(@interface)) { System.Console.WriteLine($":::{classe.Name} pode ir para a Gaiola:::"); } Console.ReadLine(); }
public static void Test(Animal animal) { Console.WriteLine($"Delegate Test Message: it was added Animal with type {animal.GetType()}"); }