如果我创建类A,并且类B继承自类A,为什么C#要求我在它们之间明确转换?C#显式转换派生类型
例如:
public class Mammal
{
}
public class Dog : Mammal
{
}
...
Mammal foo = new Dog(); // Invalid, wants an explicit cast
Mammal bar = (Mammal)new Dog(); // This one works
我只是好奇的理由是,限制落后的东西。
显式转换不应该被要求,当我测试你的代码时,第一个版本工作得很好。你能发布更完整的样本吗? – itowlson 2010-01-29 19:27:28
我不知道谁会投这个问题,当它暗示上演不能自动工作。 – Blindy 2010-01-29 19:28:43
Downvoted,因为这段代码实际上起作用 – 2010-01-29 19:31:12