有一次看見別人的**裡=>以及花裡胡哨的省略寫法感覺好炫酷,就去整理了一下匿名方法和lambda表示式的寫法。
1.無返回值型別
actiontellname = delegate(string name);
2.委託為方法引數時,省略構造委託例項listlistarray = new list;
listarray.foreach (
delegate(int i)
);
4.事件繫結時funcfunc = delegate (int a, int b) ;
predicatefunc = delegate (product obj) ;
predicate<>是返回bool型別的c#內建委託;
this.onclick+= delegate(int index);
lambda表示式自身並非委託型別,但可以通過多種隱示或顯示方法轉化為委託例項,是匿名方法的進一步演化和簡化;
1.無返回值型別
actiontellname = (string name)=>;
2.委託為方法引數時3.委託有返回值的時候listlistarray = new list;
listarray.foreach (
i => console.writeline(i.tostring())
);
如果委託需要的引數為ref/out,則需要顯示指明ref/out關鍵字以及引數型別;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;
};
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...