这是问题
我正在尝试将表单List转换为对象MyTypes,其定义为
public class MyTypes : List<MyType> { ... }
它不会直接与(MyTypes) - 编译器错误
一起投射或作为MyTypes - 返回null
我认为这是可能的,但显然我必须重载一些施法操作。
帮助!
答案 0 :(得分:4)
如果MyTypes继承自List,则无法在MyType中投射List。
示例无效:
MyTypes foo = new List<MyType>();
这是有效的:
List<MyType> foo = new MyTypes();
MyTypes bas = (MyTypes) foo;
你不能将基类isntance强制转换为继承类型,例如,你不能从Vehicle转换为Car但你可以从Car到Vehicle(如果Car:Vehicle)
答案 1 :(得分:1)
如果我理解正确,您有一个List<MyType>
,并且您希望将其转换为MyTypes
,该List<MyType>
派生自MyTypes
的......(继承)...
你不能这样做......如果你有一个List<MyType>
你可以将 up 的imnheritence链转换为{{1}}。但是你不能把下来继承链......
答案 2 :(得分:1)
在构建List<MyType>
时,您可以将MyTypes
作为参数传递,然后将其移交给基类构造函数。