C 匿名方法和Lambda表示式

2021-08-27 03:36:50 字數 1149 閱讀 1833

有一次看見別人的**裡=>以及花裡胡哨的省略寫法感覺好炫酷,就去整理了一下匿名方法和lambda表示式的寫法。

1.無返回值型別

actiontellname = delegate(string name);
2.委託為方法引數時,省略構造委託例項
listlistarray = new list;

listarray.foreach (

delegate(int i)

);

funcfunc = delegate (int a, int b) ;

predicatefunc = delegate (product obj) ;

predicate<>是返回bool型別的c#內建委託;

4.事件繫結時
this.onclick+= delegate(int index);
lambda表示式自身並非委託型別,但可以通過多種隱示或顯示方法轉化為委託例項,是匿名方法的進一步演化和簡化;

1.無返回值型別

actiontellname = (string name)=>;
2.委託為方法引數時
listlistarray = new list;

listarray.foreach (

i => console.writeline(i.tostring())

);

3.委託有返回值的時候
funcfunc = (int a, int b)=>(a-b).tostring();    //操作只有1行省略{},省略return

funcfunc= ()=> "hello"; //無引數直接用()

funcfunc = (a,b)=> (a-b).tostring(); //讓編譯器進行型別推斷,無需顯示指定引數型別

funcfunc = i => i.tostring() ; //只要乙個引數,省略(),直接寫i

funcfunc = (i)=>,有返回值寫return

i++;

return i;

};

如果委託需要的引數為ref/out,則需要顯示指明ref/out關鍵字以及引數型別;

C 匿名方法和Lambda表示式

1.需要乙個臨時方法,這個方法只會使用一次,或者使用的很少。2.這個方法的方法體很短,以至於比方法宣告都短,寫起來實在沒勁 我將其稱之為 一句話方法 沒辦法,這樣的方法寫起來真是吃力不討好,比如一些按鈕事件處理中,有些按鈕點選就是彈出乙個對話方塊,或者呼叫一下別的什麼方法。比如下面的 this.bt...

C 匿名方法和Lambda表示式

1.需要乙個臨時方法,這個方法只會使用一次,或者使用的很少。2.這個方法的方法體很短,以至於比方法宣告都短,寫起來實在沒勁 我將其稱之為 一句話方法 沒辦法,這樣的方法寫起來真是吃力不討好,比如一些按鈕事件處理中,有些按鈕點選就是彈出乙個對話方塊,或者呼叫一下別的什麼方法。比如下面的 this.bt...

匿名方法和Lambda表示式

出於mvvm學習的需要,複習下匿名方法和lambda表示式,因為之前用的也比較少,所以用的也不是很熟練,baidu下相關的知識,寫了這個demo,目標是用簡單的方法展示這個怎麼用。這裡偏重的和linq中的lambda表示式 var fileslookup files.tolookup f f.sub...