c# – 方法重载和多态

c# – 方法重载和多态,第1张

概述class Program { static void Main(string[] args) { List<A> myList = new List<A> {new A(), new B(), new C()}; foreach (var a in myList) {
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);}

在静态打字中,重载分辨率在编译时执行,而不是执行时.

为了在决策时间选择实现,您必须使用覆盖而不是重载,或者使用如上所述的动态类型.

总结

以上是内存溢出为你收集整理的c# – 方法重载和多态全部内容,希望文章能够帮你解决c# – 方法重载和多态所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1244103.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-06
下一篇2022-06-06

发表评论

登录后才能评论

评论列表(0条)

    保存