委托是 C# 中的一个重要概念,它允许将方法作为参数传递给其他方法,或者将方法存储为变量。委托可以用于事件处理、异步编程、回调函数等多种场景中。
委托的定义格式为:
delegate returnType DelegateName(parameterList);
其中,returnType 表示委托代表的方法的返回值类型,DelegateName 是委托类型的名称,parameterList 是方法的参数列表。委托类型的名称通常以“EventHandler”或“Action”为后缀。
委托可以使用“+=”或“-=”运算符添加或删除方法,使用“()”运算符调用委托所代表的方法。委托可以使用关键字“delegate”或使用lambda 表达式进行定义。
例如,下面是一个委托类型的定义和使用示例:
``` csharp
// 定义委托类型
delegate void PrintDelegate(int value);
class Program
{
static void Main(string[] args)
{
// 创建委托实例,并将方法添加到委托的调用列表中
PrintDelegate printDelegate = PrintNumber;
printDelegate += PrintString;
// 调用委托所代表的方法
printDelegate(100);
Console.ReadLine();
}
static void PrintNumber(int num)
{
Console.WriteLine($"Number: {num}");
}
static void PrintString(int num)
{
Console.WriteLine($"String: {num.ToString()}");
}
}
```
输出结果为:
```
Number: 100
String: 100
```