Ich bin ein wenig überrascht, dass der Konstruktor ruft in:A Standard (T) Enum-Wert nicht gleich null
class MyClass<T>
{
public MyClass()
{
if (default(T) == null)
Debugger.Break();
}
}
nicht bricht, wenn T
ist ein Aufzählungstyp. Warum? Es scheint, dass selbst für Enums default(T)
und null
gleichwertig sein sollten.
Warum? Irgendein Link zu einer Dokumentation, die Sie glauben gemacht hat? (Sie können http://stackoverflow.com/questions/65351/null-or-default-comparison-of-generic-argument-in-c-sharp lesen, wenn Sie Parameter mit "null" vergleichen müssen) –
Siehe http://stackoverflow.com/questions/4967656/what-is-the-default-value-for-enum-variable – seairth
Resharper sollte Ihnen die Warnung gegeben haben. –