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!");
    }
}
相关推荐
来来走走2 分钟前
Android开发(Kotlin) 扩展函数和运算符重载
android·开发语言·kotlin
zz-zjx6 分钟前
云原生LVS+Keepalived高可用方案(二)
开发语言·php·lvs
wuwu_q7 分钟前
用通俗易懂 + Android 开发实战的方式,详细讲解 Kotlin Flow 中的 retryWhen 操作符
android·开发语言·kotlin
网络精创大傻24 分钟前
PHP 与 Node.js:实际性能对比
开发语言·node.js·php
snakecy40 分钟前
过关斩将编程题
开发语言·python
diannao72043 分钟前
实时将大模型的解决方案转换为随机应变的机器人指令
开发语言·windows·python·机器人
Nebula_g1 小时前
C语言应用实例:斐波那契数列与其其他应用
c语言·开发语言·后端·学习·算法
梅梅绵绵冰1 小时前
SpringAOP的相关概念
java·开发语言
Xiaoyu Wang1 小时前
GC垃圾回收
java·开发语言·jvm
陈佳梁2 小时前
构造器(详解)
java·开发语言