用匿名方法定義委託的語法與前面的定義並沒有什麼區別。但在例項化委託時,就有區別了。下面是乙個非常簡單的控制台應用程式,說明了如何使用匿名方法:
; console.writeline(anondel("start of string"));
} }
} 委託delegatetest
定義為乙個類級變數,它帶乙個字串引數。有區別的是
main
方法。在定義
anondel
時,不是傳送已知的方法名,而是使用乙個簡單的**塊: ;
可以看出,該**塊使用方法級的字串變數
mid,該變數是在匿名方法的外部定義的,並新增到要傳送的引數中。接著**返回該字串值。在呼叫委託時,把乙個字串傳送為引數,將返回的字串輸出到控制台上。
匿名方法的優點是減少了系統開銷。方法僅在由委託使用時才定義。在為事件定義委託時,這是非常顯然的。
(本章後面**事件。
)這有助於降低**的複雜性,尤其是定義了好幾個方法時,**會顯得比較簡單。
在使用匿名方法時,必須遵循兩個規則。在匿名方法中不能使用跳轉語句跳到該匿名方法的外部,反之亦然:匿名方法外部的跳轉語句不能跳到該匿名方法的內部。
在匿名方法內部不能訪問不安全的**。另外,也不能訪問在匿名方法外部使用的
ref和
out引數。但可以使用在匿名方法外部定義的其他變數。
c 匿名方法用途 C 匿名方法
我們討論了使用委託來引用具有與委託相同簽名的任何方法。換句話說,您可以使用該委託物件呼叫可由委託引用的方法。匿名方法提供了一種將 塊作為委託引數傳遞的技術。匿名方法是沒有名稱的方法,只是主體。您無需在匿名方法中指定返回型別 它是從方法體內的return語句推斷出來的。編寫匿名方法 匿名方法是通過建立...
c 匿名方法用途 C 匿名方法
c 語言 的 c 匿名方法 前面我們學習過,委託可用於引用任何與委託簽名相同的方法。換句話說,可以呼叫可以由委託使用該委託物件引用的方法。匿名方法提供了一種將 塊作為委託引數傳遞的技術。匿名方法是沒有名稱的方法,只有方法體。不需要在匿名方法中指定返回型別 它是從方法體中的return語句來推斷的。編...
C 匿名方法
1,匿名方法 c 為委託提供一種機制,可以為委託定義匿名方法,匿名方法沒有名稱,編譯器會定指定乙個名稱 匿名方法中不能使用跳轉語句跳轉到該匿名方法的外部,也不能跳轉到該方法的內部。也不能在匿名方法外部使用的ref和out引數 2,匿名方法的 拉姆達 表示式 方式定義 c 3.0之後匿名方法可以使用 ...