将List <mytype>转换为扩展List <mytype> </mytype> </mytype>的类

时间:2009-12-24 16:27:35

标签: c# list casting

这是问题

我正在尝试将表单List转换为对象MyTypes,其定义为

public class MyTypes : List<MyType> { ... }

它不会直接与(MyTypes) - 编译器错误

一起投射

作为MyTypes - 返回null

我认为这是可能的,但显然我必须重载一些施法操作。

帮助!

3 个答案:

答案 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作为参数传递,然后将其移交给基类构造函数。