class Program
{
static void Main(string[] args)
{
List<A> myList = new List<A> {new A(), new B(), new C()};
foreach (var a in myList)
{
Render(a);
}
Console.ReadKey();
}
private static void Render(A o)
{
Console.Write("A");
}
private static void Render(B b)
{
Console.Write("B");
}
private static void Render(C c)
{
Console.Write("C");
}
}
class A
{
}
class B : A
{
}
class C : A
{
}
L'output è: AAAMetodo sovraccarico e il polimorfismo
E 'possibile usare in qualche modo overloading dei metodi, in modo che l'output sarà: ABC?
Anche se la risoluzione di sovraccarico viene fatto al momento della compilazione perché è "A un" viene scelto over "B B" e "C c". – Sandeep
@Sandeep: poiché il tipo di compilazione della variabile 'a' in' Main' è solo A, perché la lista è una 'Lista '. Quindi 'Render (a)' can * only * seleziona 'Render (A a)'. –
Questo ha senso. Grazie per la tua risposta. – Sandeep