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!");
    }
}
相关推荐
晞子的技术札记18 分钟前
单相Heric并网逆变器工作原理及MATLAB仿真测试
开发语言·matlab
李云龙炮击平安线程34 分钟前
Python中的接口、抽象基类和协议
开发语言·后端·python·面试·跳槽
十五年专注C++开发39 分钟前
Qt deleteLater作用及源码分析
开发语言·c++·qt·qobject
xyq202444 分钟前
Redis 列表(List)
开发语言
you-_ling1 小时前
线程及进程间通信
java·开发语言
Sunsets_Red1 小时前
P8277 [USACO22OPEN] Up Down Subsequence P 题解
c语言·c++·算法·c#·学习方法·洛谷·信息学竞赛
yuan199971 小时前
基于C#实现的专业级DXF文件显示控件
windows·microsoft·c#
weixin_395448911 小时前
build_fsd_luyan_from_rm.py-cursor0225
开发语言·python
tod1131 小时前
OS 核心知识点全解析(一)
linux·开发语言·面试经验
kylezhao20191 小时前
C#中的反射是什么?详细讲解以及在工控上位机中如何应用
java·开发语言