String.GetHashCode의 리턴값. ^^; 한마디로, 그때그때 다릅니다.
언제냐면, .NET Framework의 버전 또는 32bit/64bit라는 것으로 그 값이 서로 틀리게 나옵니다.
간단히 다음과 같은 테스트를 해보면.
int hashCode = "test is good".GetHashCode();
MessageBox.Show( hashCode.ToString() );
결과는 아래에서 보는 것처럼, 환경에 따라서 전혀 틀린 값이 나오게 되지요.
32bit .NET Framework 1.1: 653125770
32bit .NET Framework 2.0 beta: 1802354553
64bit .NET Framework 2.0 beta: -1164955385
만약, GetHashCode로 어떤 기준값을 저장해서 사용한 프로그램이 있다면, .NET 2.0을 적용시에 주의를 하셔야 합니다.
음... 어떻게 알았냐고요?
제 홈페이지 서버측 ASPX에서 그걸로 기준으로 쓰는 것이 있었거든요. ^^;
------------------------------------------
2022-03-24: .NET 5에서 아래의 코드를 테스트해보면,
string str = "Hello World";
int hash1 = str.GetHashCode();
int hash2 = str.GetHashCode();
Console.WriteLine(hash1);
Console.WriteLine(hash2);
심지어 EXE를 새롭게 실행할 때마다 값이 바뀝니다. ^^