qui suit ne compile pas:Test d'égalité à la valeur par défaut
public void MyMethod<T>(T value)
{
if (value == default(T))
{
// do stuff
}
}
Erreur: Operator '==' cannot be applied to operands of type 'T' and 'T'
Je ne peux pas utiliser value == null
parce T
peut être un struct.
Je ne peux pas utiliser value.Equals(default(T))
car value
peut être null
.
Quelle est la bonne façon de tester l'égalité à la valeur par défaut?
a répondu au commentaire; et pour info, 'EqualityComparer' est l'implémentation standard utilisée par la BCL, par exemple dans 'Dictionary <,>'. –
duplicata possible de http://stackoverflow.com/questions/65351/null-or-default-comparsion-of-generic-argument-in-c-sharp – nawfal