max*_*axp 11 .net c# casting
public class a{ public string x1 {get;set;} public string x2 {get;set;} public string x3 {get;set;} } public class b:a{ }
显然 var foo = (b)new a();会在运行时抛出一个转换错误.
var foo = (b)new a();
我可以考虑分配已经实例化和填充的所有属性的唯一方法a是手动将每个属性复制到新的实例中b.
a
b
它是否正确?
VMA*_*Atm 5
这种类型的演员是错误的,因为你不能把父母送给他们的孩子. 关于类型的a元信息的类型不知道b.因此,您需要提供显式强制转换运算符来执行此类操作,但在这种情况下,您必须删除继承. 其他选项是定义一些界面,例如在其他问题中.
更多信息: http://msdn.microsoft.com/en-us/library/ms173105.aspx http://msdn.microsoft.com/en-us/library/85w54y0a.aspx
归档时间:
14 年,8 月 前
查看次数:
9179 次
最近记录:
13 年,3 月 前