在约束到值类型(第二段)时,它只是意味着这一点
static bool TryToCompare<T>(T first, T second) where T : struct
{
return first == second; // not legal
return first.Equals(second); // legal
}
Run Code Online (Sandbox Code Playgroud)
如果没有泛型的值类型约束,它也会说(第一段)
static bool TryToCompare<T>(T first, T second)
{
return first == second; // not legal
return first == null; // legal
return first.Equals(second); // legal
}
Run Code Online (Sandbox Code Playgroud)
如果限制T为引用类型,则可以使用==
static bool TryToCompare<T>(T first, T second) where T : class
{
return first == second; // legal
return first == null; // legal
return first.Equals(second); // legal
}
Run Code Online (Sandbox Code Playgroud)