C# 中的匿名方法是一种允许你在没有显式定义方法的情况下创建方法体的方式。它通常用于委托(Delegate)的实例化和传递,尤其是在事件处理和异步编程方面。匿名方法在 C# 2.0 中引入,后来被 Lambda 表达式所取代。

以下是使用匿名方法的基本示例:
using System;

public delegate void MyDelegate(string message);

class Program
{
    static void Main()
    {
        // 使用匿名方法实例化委托
        MyDelegate myDelegate = delegate(string msg)
        {
            Console.WriteLine("Anonymous Method: " + msg);
        };

        // 调用委托
        myDelegate("Hello, Anonymous Method!");
    }
}

在上述例子中,我们定义了一个匿名方法,该方法与委托的签名相匹配。然后,我们使用该匿名方法实例化了一个委托,并通过委托调用了匿名方法。

尽管匿名方法在一些情况下仍然有用,但在 C# 3.0 引入的 Lambda 表达式以及后续版本的 C# 中,Lambda 表达式更为常见和推荐。上述示例也可以使用 Lambda 表达式来实现:
using System;

public delegate void MyDelegate(string message);

class Program
{
    static void Main()
    {
        // 使用 Lambda 表达式实例化委托
        MyDelegate myDelegate = (string msg) =>
        {
            Console.WriteLine("Lambda Expression: " + msg);
        };

        // 调用委托
        myDelegate("Hello, Lambda Expression!");
    }
}

Lambda 表达式更简洁,使代码更易读。如果你正在使用 C# 3.0 或更高版本,建议使用 Lambda 表达式而不是匿名方法。




转载请注明出处:http://www.zyzy.cn/article/detail/14776/C#