为什么我不能在泛型类中使用带有不同泛型类型参数的方法?

sar*_*ron 1 c# generics

就像我有这样的课:

public class Result<T>
{
}
Run Code Online (Sandbox Code Playgroud)

我想添加一个方法,如:

public class Result<T>
{
    void DoStuff(Result<T2> otherResult)
    {
        if (otherResult.HasErrors)
            DoWhatever();
    }
}
Run Code Online (Sandbox Code Playgroud)

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

ror*_*.ap 5

因为你没有T2在任何地方声明.你可以这样做:

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

}
Run Code Online (Sandbox Code Playgroud)