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

歡迎光臨散文網(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ù)的評論 (共 條)

分享到微博請遵守國家法律
大方县| 蓝山县| 兴海县| 冷水江市| 教育| 新建县| 望江县| 射阳县| 宝清县| 曲周县| 尖扎县| 舒城县| 北辰区| 城固县| 河西区| 都匀市| 华宁县| 富平县| 安康市| 伊宁县| 遂平县| 金川县| 会理县| 那曲县| 甘洛县| 阳山县| 柘城县| 长乐市| 洛川县| 马龙县| 华容县| 沂南县| 泰顺县| 措勤县| 什邡市| 建阳市| 巴中市| 金华市| 曲水县| 陆川县| 赣州市|