匿名方法不包含方法名(定义的时候)。好处仅仅是方便,不用专门去定义一个方法。因此减少了实例化委托所需的编码系统开销。所以匿名方法只适用于简短的方法体、临时使用的情况。尤其是在C# 3.0后出了Lambda表达式后用途更广了。
例如,如果创建方法所需的系统开销是不必要的,则指定代码块(而不是委托)可能非常有用。
启动新线程即是一个很好的示例。无需为委托创建更多方法,线程类即可创建一个线程并且包含该线程执行的代码。
void StartThread() { System.Threading.Thread t1 = new System.Threading.Thread (delegate() { System.Console.Write("Hello, "); System.Console.WriteLine("World!"); }); t1.Start(); }