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
{
}
출력은 : AAA방법 오버로딩 다형성
출력은가되도록 그것이 어떻게 든 방법 오버로딩을 사용할 수있다 : ABC? 당신은 C# 4를 사용하는 경우
컴파일 시간에 과부하 해결이 수행되지만 "B a"가 "B b"및 "C c"보다 우선 선택되는 이유는 무엇입니까? – Sandeep
@Sandeep :'Main'에있는'a' 변수의 컴파일 타임 타입은리스트가'List '이기 때문에 A 만입니다. 그래서'Render (a)'는'Render (A a)'만을 선택할 수 있습니다. –
그건 의미가 있습니다. 답장을 보내 주셔서 감사합니다. – Sandeep