¿Cómo se recupera el código hash de una enumeración sin encasillarlo?

Si uno tiene una enumeración almacenada dentro de un tipo agregado, es posible que desee incluirla dentro del código hash del tipo (asumiendo un típico "multiplicar por números primos"función hash). Si uno solo llamaSomeEnum.GetHashCode()Parece que el JIT encuadra la instancia, incluso en compilaciones de lanzamiento.

Al perfilar esto, se muestra un 10% del tiempo de mi solicitud de enumeración de boxeo dentro de variasGetHashCode funciones

Implementan varios tipos de valores.IEquatable o interfaces similares, lo que permite llamarGetHashCode como método estático; Lo que evita el boxeo. PeroSystem.Enum no proporciona la sobrecarga estática deGetHashCode. ¿Hay algún medio para calcular el código que debe usarse pero que evita el boxeo?

Respuestas a la pregunta(1)

Su respuesta a la pregunta