就像我有这样的课:
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做任何事情,为什么编译器会介意?
因为你没有T2在任何地方声明.你可以这样做:
void DoStuff<T2>(Result<T2> otherResult)
{
}
Run Code Online (Sandbox Code Playgroud)