Microsoft MVP성태의 닷넷 이야기
.NET Framework: 37. String.GetHashCode의 리턴값. 그때그때 다릅니다. [링크 복사], [링크+제목 복사],
조회: 18231
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

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를 새롭게 실행할 때마다 값이 바뀝니다. ^^








[최초 등록일: ]
[최종 수정일: 3/24/2022]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




... 31  32  33  34  35  36  [37]  38  39  40  41  42  43  44  45  ...
NoWriterDateCnt.TitleFile(s)
13078정성태6/16/202219225.NET Framework: 2021. WPF - UI Thread와 Render Thread파일 다운로드1
13077정성태6/15/202219932스크립트: 40. 파이썬 - PostgreSQL 환경 구성
13075정성태6/15/202216687Linux: 50. Linux - apt와 apt-get의 차이 [2]
13074정성태6/13/202217368.NET Framework: 2020. C# - NTFS 파일에 사용자 정의 속성값 추가하는 방법파일 다운로드1
13073정성태6/12/202218268Windows: 207. Windows Server 2022에 도입된 WSL 2
13072정성태6/10/202218086Linux: 49. Linux - ls 명령어로 출력되는 디렉터리 색상 변경 방법
13071정성태6/9/202219025스크립트: 39. Python에서 cx_Oracle 환경 구성
13070정성태6/8/202219686오류 유형: 813. Windows 11에서 입력 포커스가 바뀌는 문제 [1]
13069정성태5/26/202221667.NET Framework: 2019. C# - .NET에서 제공하는 3가지 Timer 비교 [2]
13068정성태5/24/202220492.NET Framework: 2018. C# - 일정 크기를 할당하는 동안 GC를 (가능한) 멈추는 방법 [1]파일 다운로드1
13067정성태5/23/202217056Windows: 206. Outlook - 1년 이상 지난 메일이 기본적으로 안 보이는 문제
13066정성태5/23/202217690Windows: 205. Windows 11 - Windows + S(또는 Q)로 뜨는 작업 표시줄의 검색 바가 동작하지 않는 경우
13065정성태5/20/202219225.NET Framework: 2017. C# - Windows I/O Ring 소개 [2]파일 다운로드1
13064정성태5/18/202218495.NET Framework: 2016. C# - JIT 컴파일러의 인라인 메서드 처리 유무
13063정성태5/18/202218887.NET Framework: 2015. C# - 인라인 메서드(inline methods)
13062정성태5/17/202218985.NET Framework: 2014. C# - async/await 그리고 스레드 (4) 비동기 I/O 재현 [1]파일 다운로드1
13061정성태5/16/202218724.NET Framework: 2013. C# - FILE_FLAG_OVERLAPPED가 적용된 파일의 읽기/쓰기 시 Position 관리파일 다운로드1
13060정성태5/15/202222333.NET Framework: 2012. C# - async/await 그리고 스레드 (3) Task.Delay 재현파일 다운로드1
13059정성태5/14/202220125.NET Framework: 2011. C# - CLR ThreadPool의 I/O 스레드에 작업을 맡기는 방법 [1]파일 다운로드1
13058정성태5/13/202220026.NET Framework: 2010. C# - ThreadPool.SetMaxThreads 사용법 [1]
13057정성태5/12/202221564오류 유형: 812. 파이썬 - ImportError: cannot import name ...
13056정성태5/12/202217123.NET Framework: 2009. C# - async/await 그리고 스레드 (2) MyTask의 호출 흐름 [2]파일 다운로드1
13055정성태5/11/202222359.NET Framework: 2008. C# - async/await 그리고 스레드 (1) MyTask로 재현 [11]파일 다운로드1
13054정성태5/11/202218758.NET Framework: 2007. C# - 10진수 숫자를 담은 문자열을 숫자로 변환하는 방법 [11]파일 다운로드1
13053정성태5/10/202217680.NET Framework: 2006. C# - GC.KeepAlive 메서드의 역할
13052정성태5/9/202218781.NET Framework: 2005. C# - 생성한 참조 개체가 언제 GC의 정리 대상이 될까요?
... 31  32  33  34  35  36  [37]  38  39  40  41  42  43  44  45  ...