Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 4.0 需要仿制药帮助吗_C# 4.0_Generics_Recursion_C# 3.0_Recursive Query - Fatal编程技术网

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
{
}