类与对象实例之委托方法的使用

8 篇文章 0 订阅
3 篇文章 0 订阅

委托
委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大量使用If-Else(Switch)语句,同时使得程序具有更好的可扩展性。
例题
在一个类中分别定义加、减、乘、除四个方法,在main函数中分别将这四个方法添加到委托对象中,并完成输出。
①定义委托原型。
例如 delegate bool MyDelegate(decimal x);//delegate相当于委托类名;
②创建委托对象
例如:
BankCard c1=new BankCard();
MyDelegate d1= new MyDelegate(c1.Pay);
上面最后一行代码还可以直接简写为:
MyDelegate d1=c1.pay;
③通过委托对象调用方法
例如
d1(300);
④委托的合并和删除可以直接进行加减加入;
例如

Fun f=Div;
f=f+Mod;//Mod也进去了,所以现在Fun有两个函数Div和Mod;

下面是一个例题
在一个类中分别定义加、减、乘、除四个方法,在main函数中分别将这四个方法添加到委托对象中,并完成输出。

  namespace _2
    {
        class Program
        {
            delegate void Fun(int x, int y);//创建委托对象
            static void Main(string[] args)
            {
                Console.WriteLine("输入运算数");
                int x = Int32.Parse(Console.ReadLine());
                int y = Int32.Parse(Console.ReadLine());
                Fun f = Add;
                f(x, y);//这时候,相当于只进行Add(x,y)函数;
                Console.WriteLine();
                f += Min;
                f(x, y);//进行加减运算
                Console.WriteLine();
                f += Mul;
                f(x, y);//+-*
                Console.WriteLine();
                f += Div;
                f(x, y);//+-*/ 删除减法的话类似如此
                Console.WriteLine();
                
            }
            static void Add(int x, int y)//加法运算
            {
                Console.WriteLine("{0}+{1}={2}", x, y, x + y);
            }
            static void Min(int x, int y)
            {
                Console.WriteLine("{0}-{1}={2}", x, y, x - y);
            }
            static void Mul(int x, int y)
            {
                Console.WriteLine("{0}*{1}={2}", x, y, x * y);
            }
            static void Div(int x, int y)
            {
                Console.WriteLine("{0}/{1}={2}",x,y,x/y);
            }
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值