什么是这种类型的委托(C#)

Win*_*der 1 .net c# delegates anonymous-delegates

我有这些代码行.

class Program
{
    public delegate void printer();

    public static void Method()
    {
        Console.WriteLine("Hello");
    }
    static void Main(string[] args)
    {
        printer del = delegate { Method(); };
        del();
        Console.ReadKey();
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我怎么称呼这句话printer del = delegate { Method(); };.

当然它不能被称为匿名方法,因为在这里我有一个命名方法.

Jam*_*mes 9

它被称为匿名方法

当然它不能被称为匿名方法,因为在这里我有一个命名方法

它仍然是一个匿名方法,正如@Daniel在评论中指出的那样,你printer通过分配一个具有相同签名的方法(恰好是一个匿名方法)来实例化一个委托实例.您可以完全避免使用匿名方法:

Printer del = Method;
Run Code Online (Sandbox Code Playgroud)


Don*_*nie 5

它是一个匿名委托,其唯一的功能恰好是调用命名方法.