¿Cuál podría ser el propósito de la tilde en este bloque de código?¿Cuál es el propósito de la tilde en esta situación?
public override int GetHashCode()
{
return ~this.DimensionId.Id^this.ElementId.Id;
}
^operador (Referencia de C#) binarios^operadores están predefinidos para los tipos integrales y bool Visual Studio. Para los tipos integrales,^calcula el OR exclusivo en bits de sus operandos. Para los operandos bool,^calcula el operador lógico exclusivo o sus operandos; es decir, el resultado es verdadero si y solo si exactamente uno de sus operandos es verdadero.
~ operador (Referencia de C#) Visual Studio 2010 El operador ~ realiza una operación de complemento bit a bit en su operando, lo cual tiene el efecto de invertir cada bit. Los operadores de complemento bit a bit están predefinidos para int, uint, long y ulong.
El operador ~ (tilde) realiza un complemento bit a bit en su único operando entero. (El operador ~ es por lo tanto un operador unario, como! Y el unario, & y * operadores.) Complementar un número significa cambiar todos los 0 bits a 1 y todos los 1 a 0
¿Qué sería una? razón ¿por qué se usaría en este contexto (en lugar de simplemente excluirlo)?
El operador xor tiende a producir una mala distribución de hash si los valores son pequeños. Voltear los bits puede cambiar eso. Las probabilidades de que esto realmente funcione no son buenas. Multiplicar uno por uno principal y agregar funciona mejor. –