无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(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# 的委托與事件具體是怎么一回事的評論 (共 條)

分享到微博請遵守國家法律
鹤庆县| 贵南县| 乌拉特前旗| 金平| 大名县| 正镶白旗| 枞阳县| 留坝县| 疏附县| 延川县| 桐梓县| 民权县| 松阳县| 彰化县| 聂拉木县| 重庆市| 丹江口市| 德化县| 兴宁市| 宁海县| 库尔勒市| 清新县| 潢川县| 涿州市| 黎平县| 井冈山市| 斗六市| 凤凰县| 嵊州市| 林周县| 砀山县| 通江县| 辽中县| 增城市| 青铜峡市| 枞阳县| 镇江市| 华容县| 嘉峪关市| 仪陇县| 永安市|