Func<T> 无返回类型的委托:如何使用 Action 代替 Func?
大家好!我刚开始学习 C#,遇到了一个关于委托的困惑情况。我知道有内置的委托 `Func` 和 `Action`。但是当我尝试使用 `Func` 来处理一个不返回任何值(void)的方法时,我遇到了编译错误。
以下是我无法正常工作的代码示例:
```csharp
using System;
class Program
{
static void Main()
{
// 尝试为输出文本的方法创建委托
Func myDelegate = PrintMessage; // 错误!
myDelegate("你好,世界!");
}
static void PrintMessage(string message)
{
Console.WriteLine(message);
}
}
```
编译器报错:"No overload for 'PrintMessage' matches delegate 'Func'" 或类似信息。我理解 `Func` 期望一个接受 `string` 并返回 `string` 的方法,但我的方法不返回任何值。
为什么会这样?因为我看到 `Func` 可以接受参数,但