En supposant que les deux objets ne sont pas des types de valeur et représentent tous les deux types qui ont surchargées la méthode equals (...), est-il une différence fonctionnelle entre:Object.Equals (obj1, obj2) vs obj1.Equals (obj2)?
- appel
obj1.Equals(obj2)
- appel
Object.Equals(obj1, obj2)
... ou Sont-ils fonctionnellement les mêmes?
Le livre Apress Je lis (Pro C# 2008), qui est en fait tout à fait bon, fait référence à cette méthode (ainsi que ReferenceEquals(...)
) comme « (très utile) méthodes statiques », mais je me bats pour voir le bénéfice ici.
Pour ReferenceEquals(...)
Je peux voir l'utilité, comme il est encore capable de déterminer si deux objets font référence au même objet (indépendamment du fait que le procédé et Equals(...)
et l'opérateur ==
ont été substituée).
Pour l'autre ... pas tellement; Est-ce que je manque juste quelque chose ici? Imaginez si, dans le premier cas, obj1
était null.
Je ne vois pas pourquoi nous utiliserions obj1.Equals (obj2) puis. –