我在GetChild方法的声明中得到以下错误(VSC#2010 Express)...
错误1类型' T'不能用作类型参数' T'通用类型或方法' ...儿童'。没有拳击转换或类型参数转换来自' T'到...... {明显'
public interface IParent<T, Id>
{
Child<T, Id> GetChild();
}
public class Child<T, Id> where T : IParent<T, Id>
{
public T Parent;
}
我希望任何类继承IParent,并为每个这样的类构造一个Child的成员实例。
T是继承IParent的类,Id是该类父作用域中的枚举。
答案 0 :(得分:2)
尝试在界面中约束类型T.
public interface IParent<T, Id> where T : IParent<T, Id>
{
Child<T, Id> GetChild();
}
public class Child<T, Id> where T : IParent<T, Id>
{
public T Parent;
public Child<T, Id> GetChild()
{
throw new NotImplementedException();
}
}