在學習delegate和event時 動手練習一下
發現一個不甚理解的地方
以下有兩個小程式
差異在delegate 一個擺在class內一個擺在main裡面
http://nopaste.csie.org/86a98 :class內
http://nopaste.csie.org/a0101 :main裡面
為什麼class內的delegate 可以使用+=
而main裡面的 使用+= compile error就會跑出來
Use of unassigned local variable 'foo'
但是C#不是預設會有初值
我看了一下兩個範例foo的初值都是null
為啥會造成這樣呢?
因為看到event 那部分範例
加入event function都直接+=給初值
不是很了解....請教一下
ps.
cc.foo += cc.Invoke; 是不是以下那行的縮寫
cc.foo += new XD.PTR(cc.Invoke);
兩種都compile可過 書上也沒特別說明差異
以上 thx~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.87.64.222