一.委託和事件的差別在哪?
請各位思考乙個問題,委託與事件功能幾乎相同,委託能幹的事件也能幹,反之亦然。那為啥還要分別弄出兩個來呢?
(如果你是在學校學的暈頭轉向的可憐兄弟,那就繼續c#教程往下看吧,別直接跳到三了)
二.委託
說的直白一點,你可以把委託當c++中的函式指標來用。同返回值型別,同引數列表。
舉個例子:
實際上還可以這麼寫using system;")
;return res;
}public
intshentong
(int weight,
int distance)")
;return res;
}public
intshunfeng
(int weight,
int distance)")
;return res;}}
class
program
}}
mydel mydel = new mydel(company.yuantong);
注釋裡說例項化,這new乙個咋這麼像乙個類呀?它不會…
為了解決你心中的疑惑,我們看看反編譯結果
你的猜測很正確,委託就是乙個類。
三.事件和委託啥區別?
上例多播委託也可用事件做到,這裡將事件發布方法寫到另外乙個類裡了,讀者可將其也放入company類,效果是一樣的。
這樣好像委託和事件沒什麼區別,委託能做的事件也能做,事件能做的委託也能做。using system;
public
int distance
//宣告乙個事件
public
event
mydel cal;
public
void
send()
}}//公司類 處理事件 訂閱者
class
company")
;return res;
}public
intshentong
(int weight,
int distance)")
;return res;
}public
intshunfeng
(int weight,
int distance)")
;return res;}}
class
program
}}
還是那個問題,委託與事件功能幾乎相同,委託能幹的事件也能幹,反之亦然。那為啥還要分別弄出兩個來呢?
我們還是來看看反編譯結果
這個combine應該不用解釋了吧。結論就是:沒啥區別,它實際上事件是微軟的乙個語法糖。你可以把他當作c++裡面的函式指標陣列。
出處:
C 委託與事件的區別
事件是利用委託來申明的,因此先解釋委託。委託是乙個類,它與其他類如int,string等沒有本質區別,int代表的是所有的整形,而string代表的是字串,委託則代表的是一類方法,這類方法具有相同返回型別和相同引數。委託的定義 public delegate void calculatorhandl...
C 委託與事件區別簡單總結
前天接了個 面試,被問到事件與委託的區別,雖然一直用但真要你說有什麼區別一時半會還真說不上來。於是問google老師,得到如下答案 2.委託可以在外部被其他物件呼叫,而且可以有返回值 返回最後乙個註冊方法的返回值 而事件不可以在外部呼叫,只能在宣告事件的類內部被呼叫。我們可以使用這個特性來實現觀察者...
委託與事件的區別
用乙個公司的場景來說明。假如你是乙個公司的老闆,手下有兩名員工 有點少,呵呵 小張和小王。你給了小王乙個這樣的特權 如果小張玩遊戲,你就可以扣小王500元錢。這就是現實中的委託。在寫程式中,程式設計師就是老闆,小張和小王就是兩個物件。小張玩遊戲是乙個方法,小張還有乙個遊戲事件,他玩遊戲激發這個事件。...