C# 中的委托

委托的概念

在C#中,委托是一种引用类型,它表示对方法的引用,即委托就是一种用来指向一个方法的引用类型变量。委托的声明类似于方法签名,但是关键字是delegate。下面是一个委托的声明和使用的例子:

cs 复制代码
// 声明一个委托
public delegate void MyDelegate(string message);
 
public class Program
{
    static void Main(string[] args)
    {
        // 创建委托实例,绑定到具体的方法
        MyDelegate myDelegate = new MyDelegate(DisplayMessage);
 
        // 使用委托
        myDelegate("Hello, World!");
    }
 
    // 与委托具有相同签名的方法
    static void DisplayMessage(string message)
    {
        Console.WriteLine(message);
    }
}

在C# 2.0引入了匿名方法,可以不必先定义一个方法就可以创建委托的实例。

cs 复制代码
// 声明一个委托
public delegate void MyDelegate(string message);

public class Program
{
    static void Main(string[] args)
    {
        MyDelegate myDelegate = delegate(string message)
        {
            Console.WriteLine(message);
        };
 
        myDelegate("Hello, World!");
    }
}

从C# 3.0开始,利用Lambda表达式,可以使代码更加简洁。

cs 复制代码
public class Program
{
    static void Main(string[] args)
    {
        MyDelegate myDelegate = message => Console.WriteLine(message);
 
        myDelegate("Hello, World!");
    }
}
相关推荐
小小码农Come on2 分钟前
QT开发环境安装
开发语言·qt
黑棠会长3 分钟前
微服务实战.06 |微服务对话时,你选择打电话还是发邮件?
微服务·云原生·架构·c#
云深处@5 分钟前
【C++】哈希表
开发语言·c++
weixin_452159558 分钟前
模板编译期条件分支
开发语言·c++·算法
guygg888 分钟前
傅立叶光学的Matlab实现方法
开发语言·matlab
码农六六11 分钟前
js函数柯里化
开发语言·前端·javascript
2501_9411481512 分钟前
C++ map / multimap 保姆级教程
java·开发语言·c++
ʚB҉L҉A҉C҉K҉.҉基҉德҉^҉大21 分钟前
C++中的策略模式进阶
开发语言·c++·算法
xb113227 分钟前
C#串口通信
开发语言·c#
小小码农Come on27 分钟前
QT内存管理
开发语言·qt