c# – 方法重载和多态
发布时间:2020-12-15 07:49:12 所属栏目:百科 来源:网络整理
导读:class Program { static void Main(string[] args) { ListA myList = new ListA {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
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,您可以使用动态输入:
foreach (dynamic a in myList) { Render(a); } 在静态打字中,重载分辨率在编译时执行,而不是执行时. 为了在决策时间选择实现,您必须使用覆盖而不是重载,或者使用如上所述的动态类型. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |