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

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

C# 的委托與事件具體是怎么一回事

2023-07-09 13:39 作者:獨立觀察員  | 我要投稿

C# 的委托與事件具體是怎么一回事


委托的弊端

1、調(diào)用委托時,如果其中的一個委托報錯,則后面的不會被調(diào)用;

2、只有最后一個的返回值才會作為委托的返回值;

3、因為是數(shù)組,所以remove 的復(fù)雜度是O(n);

4、線程不安全。


委托為什么不等于函數(shù)指針?

1、委托可以“指向”多個函數(shù);

2、委托可以指向同一個函數(shù)多次;

3、函數(shù)是包含在類中的,所以函數(shù)引用也包含了所在對象的信息;而C/C++的函數(shù)指針只是函數(shù)的入口地址。

?

委托的異步調(diào)用 BeginInvoke[不推薦使用]

比較古老,.NET Core 之后也不實現(xiàn)該方法了。


可使用 Task async/await 等進行替代,包括 WPF 中也是一樣。

?

事件的本質(zhì)

事件說白了是C#提供的語法糖,效果是:

1.將委托以私有變量的形式封裝在類內(nèi),不讓外面訪問;

2.對于委托進行了封裝,從而定義add與remove方法;

3.在add與remove中通過互鎖的方式提供了線程安全性。

?

給事件定制化 Add/Remove

以 WPF 的 MVVM 模式中的 RelayCommand 為例:


?

C# 的委托與事件具體是怎么一回事的評論 (共 條)

分享到微博請遵守國家法律
钟祥市| 馆陶县| 弥渡县| 平和县| 桐梓县| 博罗县| 家居| 调兵山市| 芦山县| 达拉特旗| 隆昌县| 宝坻区| 永泰县| 日土县| 山东| 绥宁县| 崇左市| 临潭县| 绥化市| 威宁| 报价| 织金县| 来宾市| 嘉峪关市| 扬中市| 兰西县| 罗甸县| 桃源县| 鄄城县| 望都县| 巴中市| 福清市| 静乐县| 盐源县| 金华市| 历史| 道真| 龙口市| 台南市| 鄢陵县| 疏勒县|