程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> 委托 lambda表達式淺顯理解,lambda表達式

委托 lambda表達式淺顯理解,lambda表達式

編輯:關於.NET

委托 lambda表達式淺顯理解,lambda表達式


方法不能跟變量一樣當參數傳遞,怎麼辦,C#定義了委托,就可以把方法當變量一樣傳遞了,為了簡單,匿名方法傳遞,省得再聲明方法了;再簡單,lambda表達式傳遞,比匿名方法更直觀。

public delegate int delegateArithmetic(int a, int b);

//委托作為參數,方法傳遞給委托
public int result(int x,int y,delegateArithmetic delAri)
{
return delAri(x, y);
}

public int Sum(int m,int n)
{
return m + n;
}

private void button2_Click(object sender, EventArgs e)
{
textBox2.Text = "";
//委托作為參數,方法傳遞給委托
var r1 = result(8, 5, Sum);
textBox2.Text = textBox2.Text+"把方法傳遞給delegate,兩數相加結果:" + r1.ToString()+"\r\n";

//委托作為參數,匿名方法傳遞給委托
var r2 = result(8, 5, delegate (int a, int b) { return a - b; });
textBox2.Text = textBox2.Text + "匿名方法傳遞給delegate,兩數相減結果:" + r2.ToString() + "\r\n";

//委托作為參數,lambda表達式傳遞給委托
var r3 = result(8, 5, (x, y) => { return x * y; });
textBox2.Text = textBox2.Text + "lambda表達式傳遞給delegate,兩數相乘結果:" + r3.ToString() + "\r\n";

//委托作為參數,簡易lambda表達式傳遞給委托
var r4 = result(8, 5, (x, y) => x * y);
textBox2.Text = textBox2.Text + "簡易lambda表達式傳遞給delegate,兩數相乘結果:" + r4.ToString() + "\r\n";
}

 

lambda表達式就是簡化了的匿名方法,C#編譯器編譯的時候就把lambda表達式編譯成匿名方法。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved