Pergunta

Tanto quanto eu sei, não há nenhum equivalente direto em C #. Minha idéia atual é usar um dicionário com um IEqualityComparer costume, que verifica a existência de igualdade de referência.

No entanto, isso parece perder a vantagem obtida por hashing. Existe uma maneira de obter um código hash individuais de cada objeto diferente? Ou isso é impossível e que eu deveria usar alguma outra abordagem?

Foi útil?

Solução

Você pode usar RuntimeHelpers.GetHashCode(object) que chamadas object.GetHashCode() não virtualmente - este é o equivalente a System.identityHashcode em Java. Eu acho que é isso que você está depois. Portanto, o seu IEqualityComparer só iria usar isso para hash e object.ReferenceEquals pela igualdade.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top