北京理工大学金旭亮老师C#(92—DelegateInternal)

“委托”基础

在学习具体内容之前,先强调一下:

  • 不学会委托(Delegate),等于没学.NET编程!

委托引例(FirstDelegateExample)

  • 这是一个普通的类,它定义了两个将被委托变量接收的方法
public class MathOpt
{
    public int Add(int x,int y)
    {
        return x+y;
    }
    public static int Max(int x,int y)
    {
        return x>y?x:y;
    }
}
  • 定义一个委托类型,它有两个int类型的参数,返回一个int类型的数值
public delegate int MathOptDelegate(int value1, int value2);
  • 委托是一种用户自定义的数据类型,可以用于定义变量

 

MathOptDelegate oppDel;
  • 委托变量可以接收一个方法引用
MathOpt obj = new MathOpt();
// 接收一个实例方法引用
oppDel = obj.Add;
// 接收一个静态方法引用
oppDel = MathOpt.Max;
  • 委托变量可以当成普通方法那样调用
Console.WriteLine(oppDel(1,2));  // 输出3
  • 可以定义委托类型的参数
static int UseDelegate(MathOptDelegate option,int x,int y)
{
    return option(x,y);
}
  • 可以把方法引用直接传给委托类型的参数
Console.WriteLine(UseDelegate(obj.Add,10,20));
Console.WriteLine(UseDelegate(MathOpt.Max,100,200));

从引例中我们可以知道

  • 委托实际上是一种“数据类型”,我们可以使用它来定义变量。
  • 一个委托类型的变量,可以引用任何一个满足其要求的方法(包括静态或实例方法)。
  • 委托变量有点像是一个方法的“容器”,将某一具体的方法“装入”后,这个委托变量就可以当成方法一样调用。
public delegate int MathOptDelegate(int value1,int value2);

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值