各位好
我自己定義一個基礎類別BaseClass 和 衍生類別DerdivedClass
public class BaseClass {}
public class DerdivedClass : BaseClass {}
如下 我把BaseClass 轉成DerivedClass 會出錯
DerivedClass A2 = (DerivedClass)new BaseClass();
但如果是底下寫法 就不會有錯
Button btn = (Button)this.FindControl("Button1");
FindControl所回傳的是Control 因為 Button : WebControl 且 WebControl : Control
所以 對Button來說 Control是基礎類別 Button是衍生類別
那為什麼
DerivedClass A2 = (DerivedClass)new BaseClass(); 會出錯
Button btn = (Button)this.FindControl("Button1"); 卻不會出錯呢?
程式碼
https://www.sendspace.com/file/gslh86
謝謝