匿名方法本質上是一傳遞給委託的代碼塊,是使用委託的另一種方法。
規則:
1、匿名方法中不能使用跳轉語句跳至次匿名方法的外部,反之亦然;匿名方法外部的跳轉語句也不能跳轉到匿名方法的內部;
2、在匿名方法的內部不能訪問不安全的代碼。另外,也不能訪問在匿名方法外部定義的ref和out參數。
3、可以使用在匿名方法外部定義的其他變量。
拉姆達表達式:就是匿名方法,只是語法不同。
(param)=>expr
param是輸入參數列表,expr是一個表達式或者一系列語句。
規則:
1、在一個具有唯一的顯示類型參數的Lambda表達式中,圓括號可以從參數列表中刪除。
2、當輸入參數不唯一時,括號不能省略。
3、輸入參數列表中的各參數可以顯式指定類型,也可以省略參數類型,具體類型通過類型判斷機制判斷。
4、expr可以只包含一個計算表達式,也可以包含一系列語句,只是語句需要包含在大括號中。
expr 爲語句的時候:
1: using System;
2:3: using System.Collections.Generic;
4:5: using System.Linq;
6:7: using System.Text;
8:9: namespace DelegateSample
10:11: {12:13: publicdelegatevoid PrintDelegate(string content);14:15: class Program
16:17: {18:19: staticvoid Main(string[] args)20:21: {22:23: PrintDelegate pd = (string str) =>
24:25: {26:27: System.Console.WriteLine("Printing...");
28:29: System.Console.WriteLine("Content:{0}", str);
30:31: };32:33: pd("The quick brown fox jumps oyer a lazy dog.");
34:35: }36:37: }38:39: }