public delegate int yuanill1(int t1, int t2);
private static int dosomething(int t1, int t2, yuanill1 match)
static void main(string args)
;//匿名方法的使用如下:
listddnumbers = list.findall(
delegate(int i)
);//匿名方法到此結束,它的作用是篩選資料
foreach (var oddnumber in ddnumbers) //迭代輸出資料;
//lambda表示式的用法如下:
listlistlambda = new list() ;
listddnumberslambda = list.findall(i =>(i % 2)!= 0);
foreach (var oddnumber in ddnumberslambda)
/** 解剖lambda表示式 i => (i % 2) != 0 lambda表示式的 => 標記(讀作 goes to),
* 它的前面是乙個引數列表,後面是乙個表示式或表示式塊。
* 很明顯,前面的引數列表並沒有定義引數的型別(由編譯器根據上下文推斷出i是乙個整型),
* 所以它是隱式的。當然,我們也可以顯示定義: (int i)=>(i%2)!=0);
* 我們這裡引數列表只有乙個引數,所以那個括號可以被省略。
*///例項2.
string liststring = new string;//注意字串陣列的初始化規範;
string yuan1 = array.findall(liststring,
delegate(string s)
);foreach (var numyuan1 in yuan1)
//lambda表示式來搜尋字串陣列中包含a的字串陣列;
string listlambda1 = new string;
string ll = array.findall(listlambda1, s => (s.indexof("a") >= 0));
foreach (string str in ll)
/*總結:
* 從**書寫角度,**可讀性角度來說:lambda表示式 比匿名方法更簡單了。
* 而 lambda表示式 和 匿名方法都是幹的同一件事情,讓我們少寫乙個
* 函式定義。函式的呼叫和函式的實現在一起完成了。
*/var t = dosomething(7,8,(x,y)=>x*y);
console.writeline(t);
var tt = dosomething(7, 8, (x, y) =>
else });
console.writeline(tt);}}
}
學習C lambda表示式(一)
前言 lambda是c 11新增的,因此對你的編譯器是有要求的。比如你用的是visual studio,那麼版本要求是vs2011之後的。lambda是一種定義匿名函式物件的簡潔方式,可以接受引數 儲存狀態 返回值以及跨越多行。lambda表示式可提高c 程式設計速度和效率,推薦讀者盡可能使用它們。...
lambda表示式 C Lambda表示式
lambda宣告 lambda introducer。在內部,你可以指明乙個capture用來處理外部作用域內未被傳遞為實參的資料。意味著外部作用域以by value的方式傳遞給lambda。在lamdba中不能改變其值 為什麼?意味著外部作用域以by reference的方式傳遞給lambda。因...
C lambda表示式複習
include include include include using namespace std int main lambda表示式也就是乙個函式,我們可以把它賦給函式指標,也可以在後面加上括號使用。裡面可以新增一些限制lambda塊語句中使用外部變數的限制符。一共有四種情況 1.空白表示不...