在C#中,匿名方法是一种没有显式声明的方法,通常用于传递给委托或事件处理程序。匿名方法在需要一个简单的代码块时很有用,尤其是在委托中使用。匿名方法允许你在使用时内联定义一个方法而不必提前声明。

以下是一个使用匿名方法的简单示例:
using System;

public delegate void MyDelegate(string message);

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

        // 调用委托
        myDelegate("Hello, World!");

        Console.ReadLine();
    }
}

在上面的例子中,MyDelegate 是一个接受字符串参数的委托。通过使用 delegate 关键字,我们可以在初始化委托的同时定义匿名方法。匿名方法的主体包含在 delegate 关键字后面的花括号内。

在C# 3.0及更高版本中,匿名方法也可以使用更简洁的 lambda 表达式来表示,上述示例可以改写为:
using System;

public delegate void MyDelegate(string message);

class Program
{
    static void Main()
    {
        // 使用 lambda 表达式初始化委托
        MyDelegate myDelegate = (msg) =>
        {
            Console.WriteLine("Lambda 表达式输出: " + msg);
        };

        // 调用委托
        myDelegate("Hello, World!");

        Console.ReadLine();
    }
}

Lambda 表达式提供了更简洁的语法来表示匿名方法。这两种方法本质上是等效的,选择使用哪一种通常取决于个人或团队的编程风格。


转载请注明出处:http://www.pingtaimeng.com/article/detail/6369/C#