泛型帮助需要

时间:2014-09-26 03:04:59

标签: c#-4.0 generics recursion c#-3.0 recursive-query

我不知道如何解释这个问题,我希望以下方法能够正常工作,但它会让我错误说

  

as' operator cannot be used with a non-reference type parameter T'。考虑添加`class'或参考类型约束。

有人可以帮我解决这个问题吗?

public T GetRoot<T>() {
    if (this is T)
        return this as T;
    if (parent != null)
        return parent.GetRoot<T>();
    return null;
}

2 个答案:

答案 0 :(得分:3)

public T GetRoot<T>() where T:Class
{
}

答案 1 :(得分:0)

我认为您发现问题属于您传入的类型。 使该类型无效,然后重试

T?