
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
解决方法 如果您使用C#4,您可以使用动态输入:foreach (dynamic a in myList){ Render(a);} 在静态打字中,重载分辨率在编译时执行,而不是执行时.
为了在决策时间选择实现,您必须使用覆盖而不是重载,或者使用如上所述的动态类型.
总结以上是内存溢出为你收集整理的c# – 方法重载和多态全部内容,希望文章能够帮你解决c# – 方法重载和多态所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)