Я немного удивлен, обнаружив, что вызов конструктора в:значение перечисления по умолчанию (T) не равна нулю
class MyClass<T>
{
public MyClass()
{
if (default(T) == null)
Debugger.Break();
}
}
не ломаются, когда T
является перечисление. Зачем? Кажется, что даже для перечислений default(T)
и null
должны быть эквивалентными.
Почему? Любая ссылка на документацию, которая заставила вас поверить в это? (вы можете прочитать http://stackoverflow.com/questions/65351/null-or-default-comparison-of-generic-argument-in-c-sharp, если вам нужно сравнить параметры с «null») –
См. http://stackoverflow.com/questions/4967656/what-is-the-default-value-for-enum-variable – seairth
Resharper должен был дать вам предупреждение. –