Si alguna vez has deseado conocer como la plataforma .NET hace lo
que hace entonces tienes que echarle un vistazo a .NET Reflector.
Utilidad que obtiene el código C# o VB.NET de las dlls ya compiladas. A
continuación adjunto el código que se obtiene (ingeniería inversa) de
la implementación de String.GetHashCode :
public override unsafe int GetHashCode()
{
fixed (char* text1 = ((char*) this))
{
char* chPtr1 = text1;
int num1 = 0x15051505;
int num2 = num1;
int* numPtr1 = (int*) chPtr1;
for (int num3 = this.Length; num3 > 0; num3 -= 4)
{
num1 = (((num1 << 5) + num1) + (num1 >≫ 0x1b)) ^ numPtr1[0];
if (num3 <= 2)
{
break;
}
num2 = (((num2 << 5) + num2) + (num2 >> 0x1b)) ^ numPtr1[1];
numPtr1 += 2;
}
return (num1 + (num2 * 0x5d588b65));
}
}
Como usarlo e información adicional en : .NET Reflector.
José Antonio Álvarez Bermejo.
- - - disclaimer - - -
Las opiniones son como el olor corporal, a cada uno le gusta el suyo. No te esfuerces en oponerte a mi opinión por que esa es tú opinión y a mi me trae sin cuidado.