程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#的委托,

C#的委托,

編輯:C#入門知識

C#的委托,


   

之前本人一直在寫一些相對比較基礎的C#代碼,現在做了一段時間項目了,遇到更麻煩的問題,比如今天要討論的委托和事件,這個算是C#進階篇的內容吧。現在自己就把這些天所學習的和自己所理解的和大家分享。有錯請指正。

委托

顧名思義,委托就類似於中介,你建立它後,它一直在那兒,然後你可以讓它去做不同的事,本質來說委托就是一個用來做事的工具。但是需要注意的是不是所有的事都能讓委托去做,這些事要有相同的特征,比如和委托有相同的參數。好啦,咱們還是Demo說話吧

新建一個控制台項目

image

然後我們首先在項目定義一個委托,其實委托也算得上是一個類,屬於引用類型(iint 等屬於值類型,存儲空間為堆棧,引用類型存儲空間為堆),所以我們處理委托的時候可以直接把它像類一樣處理,只是聲明的時候不同的一點就是,要寫出參數。

image

接著我們新建一個方法,這個方法就是我們需要這個委托,也就是這個中介去做的事。注意我們要讓這個方法的參數類型和個數與委托一致,因為你不能讓一個賣房子的中介去幫你干買車的事,對吧!

image

最後我們就來用委托吧,前面我有說過委托幾乎類似一個類,我們要使用委托就得實例化了,並且我們這個時候得告訴它我們需要這個中介做什麼事了。

image

注意一下此時傳的參數是方法,而不是平時的什麼int double類型。這也是委托的精髓所在。然後可以看到代碼裡面我隨後就使用了委托,給handler傳入了一個

int類型的參數,因為我們之前定義委托的時候就指定了需要一個參數,類型為int。

現在咱們來看看最後輸出的結果吧,驗證一下!!!

image


現在我們算是了解了最基礎的委托,接著我們還是來看看多路廣播委托,其實也就是讓這個中介一次幫我們做多個事情。要是不能一次做多個事,我們要這個中介干嘛,還不如自己直接把這件事做了。

我們先添加兩個事情吧。

image

我們現在再告訴中介也要做這兩件事

image

我們用+=的方式來給他添加需要做的事,這個時候委托的內部有一個鏈表,可以不斷地添加和刪除要做的事(刪除為-=),類似於list的操作。

現在我們來看一下運行結果吧

image

現在我們來總結一下委托吧

委托主要分為三步:

一:定義一個委托

二:需要做的事情

三:把事情通過參數形式傳給委托

 

最後就是使用委托啦!!!

 

PS:今天由於時間不多,只能暫時簡單寫寫委托,大家要更深入了解委托更細節的東西的話,可以去園子裡的其他博客看看,有很多優秀的帖子。

下次我也會接著和大家分享一下在委托的基礎上,我對於事件的理解。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved