无法将MyClassContainer <t>类型隐式转换为MyClassContainer <myclass>

时间:2017-02-07 06:14:24

标签: c# generics casting

我有这个课程:

public class MyClassContainer<T> where T:MyClass
{
    private List<T> _classList = new List<T>();

    public MyClassContainer(params MyClass[] myClasses)
    {
        for (int i = 0 ; i < myClasses.Length; ++i)
        {
              myClasses[i].container = this; // ERROR: Cannot implicitly cast...
              _classList.Add(myClasses[i]);
        }
    }
    ...
}

public abstract MyClass: IMyclass
{
    public MyClassContainer<MyClass> container
    {
        get;
        set;
    }
    ...
}

该代码在此行myClasses[i].container = this;中有错误。它说:

Cannot implicitly convert type MyClassContainer<T> to MyClassContainer<MyClass>

我在这里做错了什么?感谢。

PS:我不习惯使用泛型,所以可能是因为我不知道为什么会出错。

1 个答案:

答案 0 :(得分:1)

尝试使用as代替cast

myClasses[i].container = this as MyClassContainer<MyClass>;