C 初學者求救

時間 2022-12-02 21:35:02

1樓:narvik小紅帽

事件的本質就是一種特殊的委託。

它和委託的差別在於。

1、只有事件的定義者能引發事件(也就是說只有定義事件的那個類的能引發事件)

2、客戶**對事件的操作只能是+=或者-=(不能用=賦值)好像還有個我忘了……

你可以去看看《programming c#》裡委託和事件的那一章它上面講得非常清楚。

我學的時候先看了n本書沒看懂。

問老師他也說不出個所以然。

直到後來找了《programming c#》電子書看一下子就看懂了。

然後立刻買了實體書:p

2樓:匿名使用者

你看看定製一個事件的例子會有啟發。

首先定義一個委託型別 ("委託"是一個類) 如:

delegate void messhandel(string messagetxt);

然後用event關鍵字和委託型別一起宣告一個事件變數(事件就是委託型別的變數):

event messhandel evt;

然後給出匹配委託簽名的處理事件的處理程式(通常為一個方法) :

void method(string messagetxt){}然後用+=註冊(訂閱)事件,即為例項化一個委託:

evt +=new messhandel (method);

然後就可以用如下方式引發事件:

evt("我是一個字串");

就好像它是一個由委託指定簽名的方法一樣。

如果沒有引數則:evt();

可以添任意個匹配委託簽名的處理程式,它們全部會依次被呼叫。

C 初學者的問題,C 初學者問題。

首先要告訴你一個概念是 所有的c 程式都是從main函式開始執行的 include int show int main 程式進入main函式int main 程式從main 函式開始執行 第一段 cout 只是單純輸出返回值1,hello world 不會輸出來第二段 show 呼叫函式,輸出 he...

C語言初學,C語言初學者?

程式本身並沒有錯,以空格鍵跳出迴圈是不可能的。因為在輸入數值時,scanf會自動忽略空格。你要輸入不確定個數的數值,可以定一個正常情況下不出現的數作為退出標記。比如正常都是非負數時,可以用負數作為退出條件。把while 1 改寫為while a 0 或while a 99999 while 1 這段...

c語言初學者請教大家,C語言初學者請教大家

while a 14 的意思是a賦值為14,每次執行到這兒的時候,a的值就是4了,由於14為真,所以迴圈下去 因些最後停止迴圈是因為多次後,y的值大於了50 整個過程中,a,y的值如下 a 10,y 0 a 12,y 12 a 14,a 16,y y a 28a 14,a 16,y y a 44a ...