云计算百科
云计算领域专业知识百科平台

C#委托:把方法当成参数传递

委托就是“用来存放方法的变量”。

平时我们定义变量,一般都是存放数据,比如 "int" 存数字,"string" 存文字。但是委托比较特殊,它存的不是数据,而是一个方法。也就是说,我们可以把一个方法赋值给委托,然后通过委托去调用这个方法。

举个简单例子,比如我们有一个计算方法:

public int Add(int a, int b)
{
    return a + b;
}

如果使用普通方式调用,就是直接写 "Add(1,2)"。但是如果使用委托,我们可以先定义一个委托类型,然后让它指向这个方法。

public delegate int Calculate(int x, int y);

然后:

Calculate c = Add;
int result = c(1,2);

这样调用的效果和直接调用方法是一样的。

其实委托最大的作用就是让程序更加灵活。

比如在开发软件时,有时候我们不知道以后需要执行哪个方法,可以先定义一个委托,等程序运行的时候,再决定让它执行哪个方法。这样代码的扩展性会更强。

委托在实际开发中非常常见,比如事件(Event)就是建立在委托基础上的。我们平时在 WinForms 里面点击按钮,双击控件产生事件,本质上就是通过委托通知程序:“有人触发这个操作了,请执行对应的方法”。

另外,C# 还提供了一些内置委托,比如 "Action"、"Func"。它们可以减少我们自己定义委托的代码。

如:

Action<string> action = name =>
{
    Console.WriteLine(name);
};

这里的 "Action" 就代表一个没有返回值的方法。

简单理解,委托就像一个“方法遥控器”。它自己不干活,但是可以保存方法,然后在需要的时候调用对应的方法。

赞(0)
未经允许不得转载:网硕互联帮助中心 » C#委托:把方法当成参数传递
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!