这段代码通过定义一个委托 `PrintMessage`,展示了如何将一个无参数、无返回值的方法(`PrintHello`)作为委托的目标,并通过委托实例调用该方法。它分别使用了 `Invoke` 方法和语法糖(直接调用)两种方式来调用委托,展示了委托的基本使用方法和灵活性。
using System;
// 定义一个委托,用于声明一个无参数、无返回值的方法
public delegate void PrintMessage();
class Program
{
static void Main(string[] args)
{
// 创建委托实例,指向 PrintHello 方法
PrintMessage printer = PrintHello;
// 使用 Invoke 方法显式调用委托
// Invoke 方法是委托的一个显式调用方式,适用于反射等场景
printer.Invoke();
Console.WriteLine("Delegate called using Invoke method.");
// 使用语法糖直接调用委托
// 这是委托的常规调用方式,更简洁直观
printer();
Console.WriteLine("Delegate called using syntax sugar.");
}
// 定义一个静态方法,作为委托的目标方法
static void PrintHello()
{
// 打印一条简单的消息
Console.WriteLine("Hello, world!");
}
}
输出结果:
Hello, world!
Delegate called using Invoke method.
Hello, world!
Delegate called using syntax sugar.