Diferença de desempenho de igualdade de referência? ((objeto) obj1 == (objeto) obj2) vs. object.ReferenceEquals (obj1, obj2)
Existe uma sobrecarga extra no uso doobject.ReferenceEquals
versos de métodos usando((object)obj1 == (object)obj2)
?
No primeiro caso, haveria uma chamada de método estático envolvida e, em ambos os casos, alguma forma de conversão para um objeto estaria envolvid
Mesmo que o compilador equilibre esses métodos, e a desigualdad
(object)obj != null
em comparação com ...
!object.ReferenceEquals(obj,null)
Suponho que, em algum momento, ocorra uma negação lógica, dentro do operador! = Ou aplicada ao resultado do método ReferenceEquals. O que você acha
Há também a questão da legibilidade a considerar. O ReferenceEquals parece mais claro ao verificar a igualdade, mas, para a desigualdade, pode-se perder o!
precedendoobject.ReferenceEquals
, Considerando que a!=
na primeira variação é difícil de ignora