Avatar ·

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` 可以接受参数,但