为什么在通用类中不能有采用其他通用类型参数的方法?

时间:2019-01-25 16:01:41

标签: c# generics

例如,如果我有此类:

public class Result<T>
{
}

我想添加一个方法,如:

public class Result<T>
{
    void DoStuff(Result<T2> otherResult)
    {
        if (otherResult.HasErrors)
            DoWhatever();
    }
}

这是C#中的错误,但我不明白为什么。只要我对另一个Result的T不做任何事情,为什么编译器会介意?

1 个答案:

答案 0 :(得分:5)

因为您尚未在任何地方声明T2。您可以这样做:

void DoStuff<T2>(Result<T2> otherResult)
{

}