五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

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

分享到微博請遵守國家法律
淮安市| 色达县| 连平县| 奈曼旗| 潞城市| 东莞市| 阳泉市| 滨州市| 静海县| 潜山县| 惠来县| 锦州市| 安阳县| 孟津县| 英吉沙县| 得荣县| 安仁县| 车险| 高邮市| 和林格尔县| 将乐县| 小金县| 剑阁县| 北碚区| 宜章县| 天祝| 泸溪县| 黎城县| 丰原市| 集安市| 陕西省| 辽宁省| 沭阳县| 昆山市| 郧西县| 都匀市| 博湖县| 鄂托克旗| 涞源县| 青冈县| 德化县|