欢迎光临
我们一直在努力

一个有趣的例子:)关于delegate-.NET教程,面向对象编程

建站超值云服务器,限时71元/月

namespace delegatescs
{
    using system;

    public class wisdom //包含代理的类
    {
        public delegate string giveadvice();
        public string offeradvice(giveadvice words)
        {
            return words();
        }
    }
    public class parent //基类
    {
        public virtual string advice()
        {
            return("listen to reason");
        }
        ~parent() {}
    }
    public class dad: parent //子类
    {
        public dad() {}
        public override string advice()
        {
            return("listen to your mom");
        }
        ~dad() {}
    }
    public class mom: parent //子类
    {
        public mom() {}
        public override string advice()
        {
            return("listen to your dad");
        }
        ~mom() {}
    }
    public class daughter //不继承与基类的类
    {
        public daughter() {}
        public string advice()
        {
            return("i know all there is to life");
        }
        ~daughter() {}
    }

    public class test
    {
        public static string calladvice(parent p)//使用基类
        {
            wisdom parents = new wisdom();
            wisdom.giveadvice teenagegirls = new wisdom.giveadvice(p.advice);//将advice方法委托给teenagegirls委托对象
            return(parents.offeradvice(teenagegirls));
        }

        public static void main()
        {
            dad d = new dad();
            mom m = new mom();
            daughter g = new daughter();
            //以下两个为衍于基类的类
            console.writeline(calladvice(d));
            console.writeline(calladvice(m));
            //以下为未衍于基类的类,如果调用将出错。
            //console.writeline(calladvice(g));
        }
    }
}

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 一个有趣的例子:)关于delegate-.NET教程,面向对象编程
分享到: 更多 (0)