相關技術點:函數指針、C#委託、匿名方法、lambda表達式dom
談到lambda表達式,首先從委託講起,函數
委託是持有一個或者多個方法的對象,這個特性有點像C中的函數指針,能夠指向不一樣的方法,下面的例子是一個簡單的委託實例包含了聲明委託類型,建立委託對象並賦值以及調用;在這個實例中咱們聲明瞭兩個簡單的方法PrintLow和PrintHigh,只是單純的打印隨機值,若是這兩個方法只在此處使用,能夠徹底不用建立具名方法,匿名方法由此而生。 spa
# ddd指針
1 delegate void MyDel(int x);//聲明委託類型 2 class Program 3 4 { 5 void PrintLow(int value) 6 { 7 Console.WriteLine($"{value} - Low Value"); 8 } 9 void PrintHigh(int value) 10 { 11 Console.WriteLine($"{value} - High Value"); 12 } 13 static void Main() 14 { 15 MyDel del; 16 Random rand=new Random(); 17 int randomValue=rand.Next(99); 18 del=randomValue>50?new MyDel(PrintHigh):new MyDel(PrintLow);//依據randomValue賦值不一樣的委託對象 19 //使用匿名方法 20 del=randomValue>50?new MyDel(delegate(int x){Console.WriteLine($"{x} - High");}:delegate(int x){Console.WriteLine($"{x} - Low");}; 21 22 del(randomValue);//調用委託對象,執行委託對象對應的方法 23 } 24 }