委託的用法很多:一般是用於宣告事件和回撥的委託,還可以是用於代表方法標籤的委託.
書本上的委託只是對委託的定義與具體怎樣呼叫問題,沒有涉及到委託的真正實用的地方。其實委託是與事件和回撥
一起來使用的,你可以看一下C#非同步呼叫,與多執行緒處理裡等就可以看到委託的作用了。
下面是別人的理解我覺得還是比較好的:
1)有了委託你就可以把方法看作像常數一樣,而委託就是該常數型別的變數.
從這個角度看來用於宣告事件的委託就是宣告這個事件觸發以後所呼叫的方法的標籤或者特徵.只有符合該標籤(引數個數和引數型別)的方法才可以做為該用於該事件的回撥.
一個事件觸發了,你可能需要用多個方法處理該事件或者說該事件呼叫了多個方法(每個事件的例項都有一個需要呼叫的方法列表,當事件觸發它會逐個呼叫列表中的每個方法)
2)透過使用委託你可以實現對方法變化的封裝.
打個比方:如果你騎腳踏車,你需要有騎腳踏車的方法DriveBike().如果你騎摩托車你需要有騎摩托車的方法.現在你有一個方法DriveMoto.現在你需要定義一個方法,實現你騎(腳踏車或者摩托車)到某地DriveTo(地點,騎的方式)
騎的方式這裡其實就是委託.在使用的時候,如果你是騎腳踏車你就用DriveBike例項化委託的例項帶入DriveTo方法,如果你騎摩托車你就用DriveMoto例項化"騎的方式"這個委託帶入DriveTo方法.
委託的用法很多:一般是用於宣告事件和回撥的委託,還可以是用於代表方法標籤的委託.
書本上的委託只是對委託的定義與具體怎樣呼叫問題,沒有涉及到委託的真正實用的地方。其實委託是與事件和回撥
一起來使用的,你可以看一下C#非同步呼叫,與多執行緒處理裡等就可以看到委託的作用了。
下面是別人的理解我覺得還是比較好的:
1)有了委託你就可以把方法看作像常數一樣,而委託就是該常數型別的變數.
從這個角度看來用於宣告事件的委託就是宣告這個事件觸發以後所呼叫的方法的標籤或者特徵.只有符合該標籤(引數個數和引數型別)的方法才可以做為該用於該事件的回撥.
一個事件觸發了,你可能需要用多個方法處理該事件或者說該事件呼叫了多個方法(每個事件的例項都有一個需要呼叫的方法列表,當事件觸發它會逐個呼叫列表中的每個方法)
2)透過使用委託你可以實現對方法變化的封裝.
打個比方:如果你騎腳踏車,你需要有騎腳踏車的方法DriveBike().如果你騎摩托車你需要有騎摩托車的方法.現在你有一個方法DriveMoto.現在你需要定義一個方法,實現你騎(腳踏車或者摩托車)到某地DriveTo(地點,騎的方式)
騎的方式這裡其實就是委託.在使用的時候,如果你是騎腳踏車你就用DriveBike例項化委託的例項帶入DriveTo方法,如果你騎摩托車你就用DriveMoto例項化"騎的方式"這個委託帶入DriveTo方法.