C#中使用匿名函數做函數參數,求教語法含義
3 回答

精慕HU
TA貢獻1845條經驗 獲得超8個贊
你說的那些僅僅是形式上是和委托一樣,但是C#編譯器在后臺做了很多東西,匿名函數其實從簡單的介紹的話,是沒有名字的函數,更嚴格一些,匿名函數是閉包的一個實現,也就是C#通過蘭步達表達式(匿名函數)實現了閉包,通過閉包,可以改變局部變量的聲明周期,因此閉包有很多很特殊和奇妙的引用,這方面的知識你可以網上搜索一下,很多。

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

慕雪6442864
TA貢獻1812條經驗 獲得超5個贊
看上去是很繞,也許是一個龐大項目的構建,但對于小項目就顯得沒必要了。Action<T> 的變量是一個函數參數,表示對T的類項的參數要執行什么代碼。
- 3 回答
- 0 關注
- 614 瀏覽
添加回答
舉報
0/150
提交
取消