在 2.0 之前的 C# 版本中,聲明委託的唯一方法是使用命名方法。C# 2.0 引入了匿名方法,而在 C# 3.0 及更高版本中,Lambda 表達式取代了匿名方法,作為編寫內聯代碼的首選方式。
基本介紹
匿名委託,示例:,
匿名委託
的叫法並不準確,準確的應該叫做匿名方法。
要將代碼塊傳遞為委託參數,創建匿名方法則是唯一的方法。
通過使用匿名方法,由於您不必創建單獨的方法,因此減少了實例化委託所需的編碼系統開銷。
示例:
不使用匿名方法:
static void Main(string[] args)
{
Thread thread = new Thread(new ThreadStart(Run));
// 或 Thread thread = new Thread(Run); // c# 2.0 或以後版本支持
thread.Start();
}
static void Run()
{
// 要運行的代碼 ...
}
使用匿名方法:
static void Main(string[] args)
{
Thread thread = new Thread(delegate()
{
// 要運行的代碼
});
// 或 Thread thread = new Thread(new ThreadStart(delegate()
//{
// // 要運行的代碼
//}));
thread.Start();
}
使用Lambda 表達式:
static void Main(string[] args)
{
Thread thread = new Thread(() =>
{
// 要運行的代碼
});
// 或 Thread thread = new Thread(new ThreadStart(() =>
//{
// // 要運行的代碼
//}));
thread.Start();
}