亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請問在C#中使用匿名函數做函數參數,求教語法含義?

請問在C#中使用匿名函數做函數參數,求教語法含義?

C#
慕容708150 2019-09-13 15:10:16
C#中使用匿名函數做函數參數,求教語法含義
查看完整描述

5 回答

?
白豬掌柜的

TA貢獻1893條經驗 獲得超10個贊

Lambda表達式是C#3.0的新內容,如果您之前學習的C#2.0,不認識也就不奇怪了。
給您舉個例子。
例如,我定義一個委托:
delegate int Method(int a, int b);
再定義一個方法:
int Add(int a, int b)
{
return a + b;
}
我可能需要這樣通過委托調用方法:
Method m += Add;
Console.WriteLine(m(2, 3));
====================================================
但如果用 Lambda 表達式:
Method m += (a ,b) => a + b;
Console.WriteLine(m(2, 3));
可以省去方法的定義。
實際上, Lambda 表達式只是簡化了匿名方法的語法而已。

附 C# 2.0 的匿名方法語法:
Method m += delegate(int a, int b) { return a + b; };
Console.WriteLine(m(2, 3));





查看完整回答
反對 回復 2019-09-22
?
元芳怎么了

TA貢獻1798條經驗 獲得超7個贊

C#編譯器在后臺做了很多東西,匿名函數其實從簡單的介紹的話,是沒有名字的函數,更嚴格一些,匿名函數是閉包的一個實現,也就是C#通過蘭步達表達式(匿名函數)實現了閉包,通過閉包,可以改變局部變量的聲明周期,因此閉包有很多很特殊和奇妙的引用。

查看完整回答
反對 回復 2019-09-22
?
ABOUTYOU

TA貢獻1812條經驗 獲得超5個贊

你的btn不是孤立的,它是作為一個窗體里的對象存在的
那么你是不是可以通過btn.Form之類的方法獲取到這個窗體,從而獲取到窗體里的相應屬性之類
如果不是公共的,可以通過反射來實現
RoutedEventHandler事件的參數是已經固定了的,就是Object sender, RoutedEventArgs e
所以你無法增加你需要的參數,
不過這個sender,就是觸發事件的對象,也就是那個btn,你可以變通一下,給那個btn的某些屬性賦值成你希望傳遞的參數,比如btn.Text = 參數
然后在:btn_Click方法里,把sender轉換為btn對象,并獲取text屬性


查看完整回答
反對 回復 2019-09-22
?
神不在的星期二

TA貢獻1963條經驗 獲得超6個贊

直接return一個變量就可以了,變量的類型編譯器會推斷出來。但假如等號左邊是一個事件,那么返回值類型就要和事件的返回值類型相同了

查看完整回答
反對 回復 2019-09-22
  • 5 回答
  • 0 關注
  • 488 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號