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!");
    }
}
相关推荐
XiYang-DING1 天前
【Java SE】var关键字
java·开发语言
还是大剑师兰特1 天前
将 Utils.js 挂载为全局(window.Utils.xx)完整配置方案
开发语言·javascript·ecmascript
CSharp精选营1 天前
聊一聊 C# 中的闭包陷阱:foreach 循环的坑你还记得吗?
c#·foreach·循环·for循环
.YM.Z1 天前
C++入门——缺省参数,函数重载,引用,inline函数,nullptr的介绍和使用
开发语言·c++
月巴月巴白勺合鸟月半1 天前
FHIR 的使用
人工智能·c#·fhir
ulias2121 天前
智能指针简述
开发语言·c++·算法
寻寻觅觅☆1 天前
东华OJ-基础题-58-素数表(C++)
开发语言·c++·算法
专心搞代码1 天前
【大模型开发】python基础(二)
开发语言·python
咸鱼2.01 天前
【java入门到放弃】Session和JWT
java·开发语言
J2虾虾1 天前
使用GeoTools把Geojson转换成Shp文件
java·开发语言·geotools