日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

c#委托用法詳解,你了解嗎?

來源: 責編: 時間:2023-09-28 10:09:25 426觀看
導讀C#中的委托是一種抽象數(shù)據(jù)類型,它類似于C/C++中的函數(shù)指針,可用于引用方法。下面是一個詳細的C#委托用法解釋:1. 委托的定義在C#中,委托的定義類似于一個函數(shù)簽名,它描述了委托實例可以引用的方法類型。例如,以下代碼定義了

C#中的委托是一種抽象數(shù)據(jù)類型,它類似于C/C++中的函數(shù)指針,可用于引用方法。下面是一個詳細的C#委托用法解釋:k4h28資訊網(wǎng)——每日最新資訊28at.com

k4h28資訊網(wǎng)——每日最新資訊28at.com

1. 委托的定義

k4h28資訊網(wǎng)——每日最新資訊28at.com

在C#中,委托的定義類似于一個函數(shù)簽名,它描述了委托實例可以引用的方法類型。例如,以下代碼定義了一個名為“MyDelegate”的委托,它引用了一個返回void類型、帶有一個string類型參數(shù)的方法:k4h28資訊網(wǎng)——每日最新資訊28at.com

k4h28資訊網(wǎng)——每日最新資訊28at.com

```csharppublic delegate void MyDelegate(string message);```

k4h28資訊網(wǎng)——每日最新資訊28at.com

2. 委托的實例化

k4h28資訊網(wǎng)——每日最新資訊28at.com

我們可以使用“new”關(guān)鍵字來實例化一個委托,例如:k4h28資訊網(wǎng)——每日最新資訊28at.com

k4h28資訊網(wǎng)——每日最新資訊28at.com

```csharpMyDelegate del = new MyDelegate(MethodA);```

k4h28資訊網(wǎng)——每日最新資訊28at.com

在這個示例中,我們實例化了一個名為“del”的MyDelegate委托,并將它引用到一個名為“MethodA”的方法。由于MethodA方法具有與委托簽名完全相同的參數(shù)列表和返回類型,因此可以將它賦給delegate。k4h28資訊網(wǎng)——每日最新資訊28at.com

k4h28資訊網(wǎng)——每日最新資訊28at.com

3. 委托的使用

k4h28資訊網(wǎng)——每日最新資訊28at.com

我們可以使用委托實例來調(diào)用引用的方法,例如:k4h28資訊網(wǎng)——每日最新資訊28at.com

k4h28資訊網(wǎng)——每日最新資訊28at.com

```csharpdel("Hello World");```

k4h28資訊網(wǎng)——每日最新資訊28at.com

在這個示例中,我們使用“del”委托來調(diào)用MethodA方法,并將字符串“Hello World”作為參數(shù)傳遞給它。k4h28資訊網(wǎng)——每日最新資訊28at.com

k4h28資訊網(wǎng)——每日最新資訊28at.com

4. 委托鏈

k4h28資訊網(wǎng)——每日最新資訊28at.com

在C#中,委托可以形成鏈,這意味著我們可以將多個方法賦給一個委托,它們將按賦值的順序依次執(zhí)行。以下是一個示例,演示了如何將兩個方法賦給一個委托:k4h28資訊網(wǎng)——每日最新資訊28at.com

k4h28資訊網(wǎng)——每日最新資訊28at.com

```csharpMyDelegate del1 = new MyDelegate(MethodA);MyDelegate del2 = new MyDelegate(MethodB);MyDelegate del3 = del1 + del2;```

k4h28資訊網(wǎng)——每日最新資訊28at.com

在這個示例中,我們首先實例化了兩個MyDelegate類型的委托,分別賦值給del1和del2。然后,我們使用“+”運算符將它們連接起來,形成了一個名為“del3”的委托鏈。k4h28資訊網(wǎng)——每日最新資訊28at.com

k4h28資訊網(wǎng)——每日最新資訊28at.com

當我們調(diào)用del3委托時,會按照del1和del2添加到委托鏈中的順序依次執(zhí)行MethodA和MethodB方法。k4h28資訊網(wǎng)——每日最新資訊28at.com

k4h28資訊網(wǎng)——每日最新資訊28at.com

委托鏈還可以使用“-”運算符來移除委托鏈中的一個方法,例如:k4h28資訊網(wǎng)——每日最新資訊28at.com

k4h28資訊網(wǎng)——每日最新資訊28at.com

```csharpdel3 -= del2;```

k4h28資訊網(wǎng)——每日最新資訊28at.com

在這個示例中,我們從del3委托鏈中移除了del2委托所引用的MethodB方法。k4h28資訊網(wǎng)——每日最新資訊28at.com

k4h28資訊網(wǎng)——每日最新資訊28at.com

5. 匿名方法

k4h28資訊網(wǎng)——每日最新資訊28at.com

在C#2.0及以上版本中,我們可以使用匿名方法來實現(xiàn)簡單的委托,而不必顯式地定義一個命名方法。例如:k4h28資訊網(wǎng)——每日最新資訊28at.com

```csharpMyDelegate del = delegate(string message){    Console.WriteLine(message);};```

k4h28資訊網(wǎng)——每日最新資訊28at.com

在這個示例中,我們定義了一個匿名方法,它與前面的MyDelegate委托相同。在匿名方法內(nèi)部,我們只需實現(xiàn)MyDelegate的方法體即可,而不必顯式地定義一個名為“MethodA”的方法。k4h28資訊網(wǎng)——每日最新資訊28at.com

k4h28資訊網(wǎng)——每日最新資訊28at.com

6. Lambda表達式

k4h28資訊網(wǎng)——每日最新資訊28at.com

在C#3.0及以上版本中,我們可以使用Lambda表達式來代替匿名方法。Lambda表達式是一種簡潔的語法,它可以快速地定義一個委托。例如:k4h28資訊網(wǎng)——每日最新資訊28at.com

k4h28資訊網(wǎng)——每日最新資訊28at.com

```csharpMyDelegate del = message => Console.WriteLine(message);```

在這個示例中,我們使用Lambda表達式來定義一個MyDelegate委托,它與前面的匿名方法和命名方法相同。k4h28資訊網(wǎng)——每日最新資訊28at.com

k4h28資訊網(wǎng)——每日最新資訊28at.com

Lambda表達式在語法上比匿名方法更加簡潔和易讀。它可以使用“=>”箭頭符號來定義委托方法體。在箭頭符號前面,我們可以指定方法參數(shù),在箭頭符號后面,我們可以編寫方法體并返回值(如果需要)。k4h28資訊網(wǎng)——每日最新資訊28at.com

k4h28資訊網(wǎng)——每日最新資訊28at.com

通過上述步驟,我們可以使用C#委托來實現(xiàn)各種方法引用和回調(diào)需求,使代碼實現(xiàn)更加簡潔和靈活。在實際應(yīng)用中,我們可以根據(jù)具體需求來選擇使用委托、事件或其他方法來實現(xiàn)回調(diào)和通知機制。k4h28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-11895-0.htmlc#委托用法詳解,你了解嗎?

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 圖形編輯器開發(fā):實現(xiàn)圖形的復制粘貼

下一篇: 如何快速使用Docker部署我們的微服務(wù)

標簽:
  • 熱門焦點
  • K60 Pro官方停產(chǎn) 第三方瞬間漲價

    雖然沒有官方宣布,但Redmi的一些高管也已經(jīng)透露了,Redmi K60 Pro已經(jīng)停產(chǎn)且不會補貨,這一切都是為了即將到來的K60 Ultra鋪路,屬于廠家的正常操作。但有意思的是該機在停產(chǎn)之后
  • 天貓精靈Sound Pro體驗:智能音箱沒有音質(zhì)?來聽聽我的

    這幾年除了手機作為智能生活終端最主要的核心之外,第二個可以成為中心點的產(chǎn)品是什么?——是智能音箱。 手機在執(zhí)行命令的時候有兩種操作方式,手和智能語音助手,而智能音箱只
  • 5月iOS設(shè)備性能榜:M1 M2依舊是榜單前五

    和上個月一樣,沒有新品發(fā)布的iOS設(shè)備性能榜的上榜設(shè)備并沒有什么更替,僅僅只有跑分變化而產(chǎn)生的排名變動,剛剛開始的蘋果WWDC2023,推出的產(chǎn)品也依舊是新款Mac Pro、新款Mac Stu
  • 如何正確使用:Has和:Nth-Last-Child

    我們可以用CSS檢查,以了解一組元素的數(shù)量是否小于或等于一個數(shù)字。例如,一個擁有三個或更多子項的grid。你可能會想,為什么需要這樣做呢?在某些情況下,一個組件或一個布局可能會
  • 多線程開發(fā)帶來的問題與解決方法

    使用多線程主要會帶來以下幾個問題:(一)線程安全問題  線程安全問題指的是在某一線程從開始訪問到結(jié)束訪問某一數(shù)據(jù)期間,該數(shù)據(jù)被其他的線程所修改,那么對于當前線程而言,該線程
  • 2天漲粉255萬,又一賽道在抖音爆火

    來源:運營研究社作者 | 張知白編輯 | 楊佩汶設(shè)計 | 晏談夢潔這個暑期,旅游賽道徹底火了:有的「地方」火了——貴州村超旅游收入 1 個月超過 12 億;有的「博主」火了&m
  • 10天營收超1億美元,《星鐵》比《原神》差在哪?

    來源:伯虎財經(jīng)作者:陳平安即便你沒玩過《原神》,你一定聽說過的它的大名。恨它的人把《原神》開服那天稱作是中國游戲史上最黑暗的一天,有粉絲因為索尼在PS平臺上線《原神》,怒而
  • 三星Galaxy Z Fold/Flip 5國行售價曝光 :最低7499元/12999元起

    據(jù)官方此前宣布,三星將于7月26日也就是明天在韓國首爾舉辦Unpacked活動,屆時將帶來帶來包括Galaxy Buds 3、Galaxy Watch 6、Galaxy Tab S9、Galaxy
  • 滴滴違法違規(guī)被罰80.26億 共存在16項違法事實

    滴滴違法違規(guī)被罰80.26億 存在16項違法事實開始于2121年7月,歷經(jīng)一年時間,網(wǎng)絡(luò)安全審查辦公室對“滴滴出行”網(wǎng)絡(luò)安全審查終于有了一個暫時的結(jié)束。據(jù)“網(wǎng)信
Top 主站蜘蛛池模板: 太仆寺旗| 宝清县| 全南县| 惠安县| 渝中区| 遂平县| 宁陕县| 合川市| 北票市| 布尔津县| 乐清市| 花莲市| 美姑县| 芮城县| 德清县| 富平县| 富蕴县| 凉城县| 磐安县| 金山区| 栾川县| 宜阳县| 南昌县| 泉州市| 河北区| 南开区| 米泉市| 西畴县| 华池县| 江永县| 山东省| 集贤县| 汉中市| 淳安县| 元阳县| 巴林右旗| 奉节县| 行唐县| 襄樊市| 都江堰市| 普兰店市|