代码之家  ›  专栏  ›  技术社区  ›  CaffGeek

将list<mytype>强制转换为扩展list<mytype>的类

  •  0
  • CaffGeek  · 技术社区  · 15 年前

    问题出在这里

    我正在尝试将表单列表强制转换为定义为

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

    它不会直接用(mytypes)进行强制转换- 编译程序错误

    或与 作为MyType - 返回空值

    我认为这是可能的,但很明显我必须超载一些铸造操作。

    救命!

    3 回复  |  直到 15 年前
        1
  •  1
  •   flesh    15 年前

    你可以通过 List<MyType> 在构造您的 MyTypes 然后把它交给基类构造函数。

        2
  •  4
  •   albertein    15 年前

    如果mytypes从列表继承,则不能在mytype时强制转换列表。

    示例这是无效的:

    MyTypes foo = new List<MyType>();
    

    这是有效的:

    List<MyType> foo = new MyTypes();
    MyTypes bas = (MyTypes) foo;
    

    不能将基类强制转换为继承的类型,例如,不能从一辆车强制转换为另一辆车,但可以从一辆车强制转换为另一辆车(如果是car:vehicle)

        3
  •  1
  •   Charles Bretana    15 年前

    如果我正确理解你,你有 List<MyType> 你想把它投射到 MyTypes ,其派生自(继承自) 列表<mytype>

    你不能这样做…如果你有 MyType 你可以投它 向上的 一条连接到 列表<mytype> . 但你不能投 向下 继承链…