folgendem Grund nicht nicht kompiliert:-Test für die Gleichstellung auf den Standardwert
public void MyMethod<T>(T value)
{
if (value == default(T))
{
// do stuff
}
}
Fehler: Operator '==' cannot be applied to operands of type 'T' and 'T'
ich kann nicht value == null
weil T
kann eine Struktur sein.
Ich kann value.Equals(default(T))
nicht verwenden, weil value
null
sein kann.
Was ist der richtige Weg, um den Standardwert auf Gleichheit zu testen?
antwortete auf Kommentar; und für Informationen ist 'EqualityComparer' die Standardimplementierung, die von der BCL verwendet wird, zum Beispiel in 'Dictionary <,>'. –
möglich duplicate von http://stackoverflow.com/questions/65351/null-or-default-comparsion-of-generic-argument-in-c-sharp – nawfal