首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 2.0 新特性深度解析(九):匿名方法基礎語法、參數傳遞與執行緒啟動範例

     編輯:關於C語言

匿名方法定義特徵

  • 內嵌定義(in-line),非類別成員。
  • 不可套用屬性(Attribute)、不可定義泛型參數/約束。
  • 核心:`delegate` 關鍵字重載用於初始化委派實例。

基本用法

無參數


delegate void SomeDelegate();
SomeDelegate del = delegate() { MessageBox.Show("Hello"); };
del();

帶參數


delegate void SomeDelegate(string str);
SomeDelegate del = delegate(string str) { MessageBox.Show(str); };
del("Hello");

作為委派參數傳遞


void InvokeDelegate(SomeDelegate d) { d(); }
InvokeDelegate(delegate() { MessageBox.Show("Hello"); });

若參數為抽象 `Delegate`,需強制轉型:(SomeDelegate)delegate() {...}。

實戰:無 ThreadStart 建構啟動執行緒


public class MyClass
{
    public void LaunchThread()
    {
        Thread t = new Thread(delegate()
        {
            MessageBox.Show("Hello from worker thread");
        });
        t.Start();
    }
}

參數傳遞細節

  • 委派簽名決定匿名方法參數簽名(必須匹配)。
  • 呼叫委派時正常傳遞引數:del(arg1, arg2)。
  • 捕獲外部區域變數自動形成閉包(參見第 11 篇)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved