最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

C#在自定義事件里傳遞自定義數(shù)據(jù)

2021-11-15 17:37 作者:新閣教育  | 我要投稿

前記

相信很多小伙伴都知道傳值的一些方式,比如構(gòu)造方法傳值、屬性傳值、Tag傳值、委托傳值、窗體傳值等,今天給大家分享的一種方式,是通過自定義事件來傳值。

對于一般的系統(tǒng)事件,是有兩個(gè)參數(shù)的,一個(gè)是sender,一個(gè)是EventArgs,對于sender,我們可能用得還比較多一些,它表示這個(gè)事件的觸發(fā)者,一般指向的是一個(gè)控件,但是對于EventArgs,我們一般用得會(huì)比較少,今天分享的自定義事件傳值就是通過EventArgs來實(shí)現(xiàn)。

基礎(chǔ)篇

通過EventArgs來實(shí)現(xiàn)傳值,我們首先需要?jiǎng)?chuàng)建一個(gè)類,繼承EventArgs,我們可以將需要傳遞的數(shù)據(jù),直接在類里面定義成屬性,這里以傳遞一個(gè)布爾、一個(gè)浮點(diǎn)數(shù)為例,代碼如下所示:

然后我們創(chuàng)建一個(gè)類,類里面創(chuàng)建一個(gè)事件,并激發(fā)事件,這里傳遞的值為True和123.0,代碼如下:


我們在主窗體中,實(shí)例化類,并進(jìn)行事件綁定,看看能不能獲取到傳遞的數(shù)據(jù),代碼如下:

運(yùn)行結(jié)果如下所示:


進(jìn)階篇

在上面知識(shí)掌握的基礎(chǔ)上,我們可以做進(jìn)一步優(yōu)化,在定義事件時(shí),可以不用EventHandler,可以自己定義參數(shù)來實(shí)現(xiàn),我們再創(chuàng)建一個(gè)類——Test2,代碼如下:

這樣我們在事件處理中,就可以直接獲取屬性了,而不需要對EventArgs進(jìn)行強(qiáng)制轉(zhuǎn)換,代碼如下:


高級篇

如果繼續(xù)深入的話,我們可以將傳遞的參數(shù)改成泛型,這樣就可以輕松傳遞單個(gè)參數(shù)了,對于多個(gè)參數(shù)的情形,我們可以使用對象,單一參數(shù)比較簡單,這里就不贅述了,主要針對對象傳遞進(jìn)行說明,首先創(chuàng)建一個(gè)參數(shù)實(shí)體類,這里創(chuàng)建三個(gè)屬性,代碼如下:

創(chuàng)建事件參數(shù)類,代碼如下:


再創(chuàng)建一個(gè)類——Test3,代碼如下:


主窗體調(diào)用并進(jìn)行事件處理,代碼如下:


運(yùn)行結(jié)果如下:


C#在自定義事件里傳遞自定義數(shù)據(jù)的評論 (共 條)

分享到微博請遵守國家法律
陆丰市| 呼伦贝尔市| 右玉县| 星子县| 客服| 铁力市| 祁连县| 攀枝花市| 右玉县| 丽江市| 肥西县| 汝南县| 石屏县| 广南县| 松潘县| 忻城县| 余干县| 冕宁县| 龙岩市| 印江| 武威市| 黎城县| 长武县| 吕梁市| 江安县| 长海县| 黄骅市| 丹凤县| 汪清县| 六安市| 任丘市| 吉安县| 九台市| 沾化县| 济南市| 德钦县| 丹江口市| 洮南市| 忻州市| 德庆县| 迁安市|