我有一个对象,我传递了很多。C#铸造和继承
我需要一段数据添加到它,不能修改基类
所以我
static OriginalThing GetNewThing()
{
return new OriginalThing();
}
现在我想加我一块数据
class EnhancedThing : OriginalThing
{
string name;
static EnhancedThing GetNewThing(string name)
{
EnhancedThing ething = new OriginalThing(); <---doesnt work even if i cast it
ething.Name = name;
}
}
我该怎么做呢?
很好的解释Ed。我只想补充一点,你可能会听到这种讨论为协变与反变换(特别是在采访中;-) http://blogs.msdn.com/b/csharpfaq/archive/2010/02/16/covariance-and-contravariance -faq.aspx –
EnhancedThing ething = new OriginalThing(); 当我这样做时,它声明你不能隐式转换类型 – Jeff
@Jeff:这是一个从复制原始代码遗留下来的错字,很抱歉。 –