国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

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

分享到微博請遵守國家法律
江安县| 商洛市| 蒙城县| 连州市| 育儿| 六枝特区| 巴青县| 灵山县| 德安县| 灌云县| 德州市| 新巴尔虎右旗| 巧家县| 越西县| 常宁市| 东阳市| 文化| 托克逊县| 修文县| 新野县| 黑山县| 通辽市| 利辛县| 德化县| 南宫市| 达日县| 峨眉山市| 民勤县| 乐业县| 陵川县| 邢台市| 万全县| 永平县| 苏州市| 克拉玛依市| 乃东县| 彰武县| 麻江县| 延庆县| 乐山市| 疏勒县|