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
{
}
çıktısı: AAAYöntem aşırı yükleme ve polimorfizmi
çıkışı olacağını bu yüzden, her nasılsa yöntem aşırı yüklenmesini kullanmak mümkün mü: ABC? C# 4 kullanıyorsanız
Derleme zamanında aşırı yük çözünürlüğü yapılmasına rağmen "B b" ve "C c" üzerinde neden "A a" seçilir? – Sandeep
@Sandeep: "Ana" içindeki "a" değişkeninin derleme zamanı türü yalnızca A olduğundan, çünkü liste bir "Liste ". Bu nedenle, (yalnızca) Render (a) 'sadece * * Render (A a)' yı seçin. –
Bu mantıklı. Cevabın için teşekkürler. – Sandeep