原文見:今天被out引數玩了一把
我們經常寫這樣的**:
public
class
class2
private
void
test(base b)
}class
base
class
derive : base
class
derive1 : base
使用基類來表示乙個介面,然後傳遞子類。但是把這段**改一改:
public
class
class2
private
void
test(
outbase b)
}class
base
class
derive : base
class
derive1 : base
按照平常的思路是沒問題的,可是連編譯都通不過。why? 是繼承體系不對?查一查,沒問題。引數型別不對?也沒問題,如果把derive d = new derive()換成base d = new base(),編譯是沒問題的。或者不使用out,編譯也沒問題。
費了老大勁,才找到關於這個問題的說明:
out要求傳入的引數型別和宣告的型別是一致的。原來的是out搞的鬼!對out引數子類到基類的轉換是用不成的,
可是如果new的是基類,那麼使用基類不就沒意義了嗎?
沒辦法,框架是人家寫的,人家用了out引數我們也不能怎麼樣,不過這個問題得搞清楚。要傳子類,還得自己想辦法,繞個道:
class
class1
static
void
test(
outbaseclass y ,type t )
}class
baseclass
public
void
writename()
}class
deriveclass : baseclass
class
deriveclass2 : baseclass
要不是這次碰到這樣的問題,我還真不知道out引數還有這問題呢?照著平常的思路老是走不通,還道是繼承的有問題呢,還好,總算把原因搞清楚了
被HDC忽悠了一把
windows ui 程式寫得不算少了,無論是基於mfc的,還是直接用windows api 今天還是被hdc忽悠了一把,事情的經過是這樣的 hdc hdc getdc m hdrawwnd 這段 正好是一段需要經常執行的 每次狀態有所改變需要重繪時都會呼叫到。程式執行倒是蠻平穩,沒有任何異常跡象。...
被Axis2狗屎折騰了一把
被axis2狗屎折騰了一把 最近在做web service這塊,起初用的是xfire1.2.6,myeclipse開發工具支援很好,不管是客戶端和服務端只要打個war包部署上即可。但是,處於一些政治原因,xfire被叫停了,換到axis2上,研究後發現 1 axis2開發工具支援力度不夠,需要自己寫...
被肉雞了一把,感覺很酸爽。
被黑前高富帥 被黑後矮窮挫 昨天伺服器被黑客攻擊了,徹底的被黑了一把。計算機的cpu佔用率100 多個病毒程序一直活躍殺不死,網路流量也高居不下。這酸爽。該防毒的防毒該防護的防護,按程式走了一遍。病毒最終找出來了,也殺死了,系統恢復正常。但是為了防止有更隱藏的病毒沒有徹底消滅,心裡總是不踏實,為了穩...