【发布时间】:2018-07-17 08:12:30
【问题描述】:
public class Test<T>
{
private T something;
public Test<NewT> Cast<NewT>() where T : NewT
{
return new Test<NewT>() { something = this.something };
}
}
VS 错误:“Test.Cast()”未定义类型参数“T”
为什么会这样?
【问题讨论】:
-
您不能让 方法 对 type 的泛型参数施加约束。如果要约束
T,则必须在类型级别施加该约束。 -
where T : NewT应该在类定义中,而不是在方法定义中。 -
我想约束 NewT 必须是 T 的父级,但我看到这是不可能的
标签: c# .net generics inheritance