最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C# 多播委托的使用小結(jié)

 更新時(shí)間:2026年06月26日 09:21:18   作者:影寂ldy  
本文主要介紹了C# 多播委托的使用小結(jié),重點(diǎn)介紹了實(shí)例方法與靜態(tài)方法的綁定與解綁機(jī)制,特別強(qiáng)調(diào)了實(shí)例方法的移除問(wèn)題及其解決方案,感興趣的可以了解一下

一、多播委托 核心概念

1. 什么是多播委托

普通委托:一個(gè)委托變量只能綁定一個(gè)方法

多播委托:一個(gè)委托變量可以綁定【多個(gè)方法】

通過(guò) += 綁定追加方法、-= 移除解綁方法

調(diào)用委托時(shí),會(huì)依次執(zhí)行當(dāng)前綁定的所有方法

2. 語(yǔ)法規(guī)則

  • 委托變量 += 方法:追加綁定方法
  • 委托變量 -= 方法:移除綁定方法
  • 執(zhí)行順序:先綁先執(zhí)行
  • 多播委托只適合無(wú)返回值 void 委托(有返回值會(huì)被最后一個(gè)覆蓋)

二、委托三種調(diào)用方式(復(fù)習(xí)鞏固)

// 1. 直接調(diào)用方法
F1("ss");

// 2. 委托變量間接調(diào)用
m8("aaa");

// 3. Invoke 原生調(diào)用
m8.Invoke("bbb");

// 4. 空安全調(diào)用(最規(guī)范)
m8?.Invoke("ccc");

三、多播委托基礎(chǔ)綁定演示

寫法1:完整 new 綁定

MyDel m1 = new MyDel(F1);       // 綁定F1
m1 += new MyDel(new Test().F2); // 追加綁定F2
m1("周星馳");
// 執(zhí)行順序:F1 → F2

寫法2:簡(jiǎn)化寫法(常用)

MyDel m2 = F1;
m2 += new Test().F2;
m2("吳孟達(dá)");

四、多播委托 移除方法 -= 詳解(重點(diǎn))

1. 正常移除成功

MyDel m2 = F1;
m2 += new Test().F2;

m2 -= F1; // 移除F1
m2("元華");
// 只剩 F2 執(zhí)行

五、超級(jí)大坑:實(shí)例方法移除失?。ū乜煎e(cuò)題)

1. 錯(cuò)誤代碼:永遠(yuǎn)移除不掉

MyDel m3 = F1;
m3 += new Test().F2;  
// 這里是【新對(duì)象A】的F2

m3 -= new Test().F2; 
// 這里是【新對(duì)象B】的F2
// A和B不是同一個(gè)對(duì)象!無(wú)法匹配,移除失?。?

m3("梅艷芳"); 
// F2 依然執(zhí)行

核心原理(必背)

  • 實(shí)例方法屬于對(duì)象
  • new Test() 每次都是全新對(duì)象,內(nèi)存地址不同
  • 委托移除機(jī)制:必須是同一個(gè)對(duì)象的同一個(gè)方法才能移除
  • 兩次 new 產(chǎn)生兩個(gè)不同對(duì)象,無(wú)法匹配,移除失效

六、兩種正確移除方案(標(biāo)準(zhǔn)答案)

方案1:實(shí)例方法 → 提取統(tǒng)一對(duì)象(推薦)

MyDel m4 = F1;
Test t1 = new Test(); // 唯一對(duì)象
m4 += t1.F2;
m4 -= t1.F2; // 同一個(gè)對(duì)象,精準(zhǔn)移除

m4("張國(guó)榮");
// 只剩 F1 執(zhí)行

方案2:使用靜態(tài)方法(無(wú)對(duì)象依賴,百分百成功)

MyDel m5 = F1;
m5 += Test.F3;  // 靜態(tài)方法
m5 -= Test.F3;  // 靜態(tài)方法直接匹配,無(wú)需對(duì)象
m5("周潤(rùn)發(fā)");

靜態(tài)方法不屬于對(duì)象,屬于類,不存在對(duì)象不同的問(wèn)題

七、多播委托總結(jié)規(guī)則

  • += 追加綁定,-= 解綁移除
  • 多播委托按綁定順序依次執(zhí)行所有方法
  • 實(shí)例方法移除必須保證是同一個(gè)對(duì)象
  • 靜態(tài)方法移除無(wú)對(duì)象困擾,最穩(wěn)定
  • 每次 new 都是新對(duì)象,實(shí)例方法直接 -= 必失敗

八、面試高頻問(wèn)答

問(wèn):為什么兩次 new 對(duì)象的實(shí)例方法無(wú)法從多播委托中移除?

答:實(shí)例方法依賴對(duì)象實(shí)例,兩次 new 創(chuàng)建了兩個(gè)不同內(nèi)存地址的對(duì)象,委托內(nèi)部比對(duì)的是【對(duì)象+方法】,對(duì)象不一致,匹配失敗,所以無(wú)法移除。

問(wèn):多播委托為什么一般用 void 無(wú)返回值?

答:如果多個(gè)方法都有返回值,最終只能保留最后一個(gè)方法的返回值,前面返回值全部被覆蓋,無(wú)意義。

九、滿分背誦口訣

  • 多播委托可疊加,+=綁定 -=刪
  • 先綁先跑順序定,批量執(zhí)行很簡(jiǎn)單
  • 實(shí)例方法坑最深,兩次new刪不掉
  • 統(tǒng)一對(duì)象才可刪,靜態(tài)方法最安全

到此這篇關(guān)于C# 多播委托的使用小結(jié)的文章就介紹到這了,更多相關(guān)C# 多播委托內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

长汀县| 昌黎县| 时尚| 隆安县| 桃江县| 丽江市| 滨海县| 龙海市| 区。| 文水县| 星子县| 高尔夫| 翼城县| 孙吴县| 常州市| 介休市| 晴隆县| 乐东| 噶尔县| 榆林市| 金平| 尚志市| 庆元县| 东港市| 洪雅县| 东乡县| 尚志市| 五指山市| 红安县| 荆门市| 镇原县| 南江县| 北京市| 彭州市| 临安市| 台中市| 原阳县| 吉水县| 望城县| 枝江市| 水富县|