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!");
    }
}
相关推荐
itzixiao1 天前
L1-067 洛希极限(10分)[java][python]
java·开发语言·算法
l1t1 天前
DeepSeek总结的DuckDB anofox-forecast季节调整时间序列预测插件功能
开发语言·数据库
xyq20241 天前
SVG 阴影
开发语言
好奇龙猫1 天前
[大学院ーpython-base learning3: python and recommendation system ]
开发语言·python
澈2071 天前
C++引用与指针:核心区别全解析
开发语言·数据结构·c++
沐知全栈开发1 天前
Scala Iterator(迭代器)
开发语言
篮子里的玫瑰1 天前
Python与网络爬虫——字典与集合
开发语言·python
良木生香1 天前
【C++初阶】STL——Vector从入门到应用完全指南(1)
开发语言·c++·神经网络·算法·计算机视觉·自然语言处理·数据挖掘
Brilliantwxx1 天前
【C++】String的模拟实现(代码实现与坑点讲解)
开发语言·c++·笔记·算法
skilllite作者1 天前
Zed 1.0 编辑器深度评测与实战指南
开发语言·人工智能·windows·python·编辑器·agi