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!");
    }
}
相关推荐
weixin_307779134 小时前
C++代码实现MATLAB中的dlarray函数功能
开发语言·c++·算法·matlab
一水鉴天7 小时前
映射、哈希表与哈斯图:计算机科学的三种基线 20261003(元宝)
开发语言·人工智能
Frank_refuel7 小时前
C++11之一场名为“搬家”的 C++ 之旅
开发语言·c++
Wang's Blog8 小时前
Java 项目实战: 外卖平台优化-Nginx配置文件结构与块层级
java·开发语言·nginx
2601_962071578 小时前
类变量和全局变量的查找路径有什么区别?
开发语言·python
\光辉岁月/9 小时前
5.java-数组
java·开发语言
Java后端的Ai之路9 小时前
Python进阶探索29_eval内置函数
开发语言·python·探索·eval·内置函数
谢亮_vipxieliang10 小时前
Spring 事务失效的常见场景
java·开发语言·数据库·spring boot
时间的拾荒人10 小时前
Qt 多线程详解:从 QThread 到实战
开发语言·qt·面试
郑州光合科技余经理10 小时前
海外版外卖加盟:总站与分站配送规则怎么分开管
java·开发语言·前端·后端·uni-app·php·ai编程