C# 4.0 需要仿制药帮助吗
我不知道如何解释这个,我希望下面的方法能起作用,但它给了我错误的说法C# 4.0 需要仿制药帮助吗,c#-4.0,generics,recursion,c#-3.0,recursive-query,C# 4.0,Generics,Recursion,C# 3.0,Recursive Query,我不知道如何解释这个,我希望下面的方法能起作用,但它给了我错误的说法 as'运算符不能与非引用类型参数一起使用 T'。考虑添加“类”或引用类型约束。 谁能帮我解决这个问题 public T GetRoot<T>() { if (this is T) return this as T; if (parent != null) return parent.GetRoot<T>(); return null; } pub
as'运算符不能与非引用类型参数一起使用
T'。考虑添加“类”或引用类型约束。
谁能帮我解决这个问题
public T GetRoot<T>() {
if (this is T)
return this as T;
if (parent != null)
return parent.GetRoot<T>();
return null;
}
public T GetRoot(){
如果(这是T)
将此作为T返回;
如果(父项!=null)
返回parent.GetRoot();
返回null;
}
我想您会发现问题出在您正在传递的类型中。
请将该类型设为空,然后重试
T?
public T GetRoot(),其中T:Class
{
}
public T GetRoot<T>() where T:Class
{
}