各位好
我自己定义一个基础类别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
谢谢