2010-03-01 6 views
9

이것은 다소 사소한 일일 수도 있지만 C#에서는 int에 선호 되는가 아니면 변수에 네트워크 포트를 저장할 때 UInt16을 선호합니까? UInt16이 실제로 유효한 값을 나타내지 만 프레임 워크 클래스는 네트워크 포트를 처리 할 때 int를 사용합니다.int 또는 UInt16을 사용해야합니까?

답변

8

서명 (int/shortuint/ushort 오히려 것을) 당신이 좋은 이유가없는 것을 권장하므로 CLS 규격하다는 장점이있다.

intshort 재 - 모든 운영이 최적화되어 있기 때문에 대부분의 경우, int (또는 uint)와 컴퓨팅에 더 효율적입니다. 저장하고 검색하는 경우 물론 이것은 문제가 아닙니다.

+0

서명되지 않은 유형이 2.0부터 시작하는 CLS 규격이라고 생각합니다. 내가 잘못 생각할 수 있기 때문에 내가 이것을 보았 기 때문에 오랜 시간을 보냈다. – JaredPar

+0

@JaredPar - 기이하게도, 'ushort'는 경고를 발생시키지 않지만 'Unit'은 VS2008을 사용합니다 : "경고 인수 유형 'uint'는 CLS 규격이 아닙니다." –

+0

@JaredPar - 또한 MSDN " 이 API는 CLS 규격이 아니며, CLS 호환 대체품은 Int32입니다. " http://msdn.microsoft.com/en-us/library/system.uint16.aspx (4.0 용) –

0

32 비트 프로세서를 사용하는 경우 16 비트 값 (메모리 절약 용)을 사용하면 32 비트로 정렬됩니다. 그래서 32 비트 값 대신에 16 비트 단위를 사용하는 것이 그렇게 중요하지 않다고 생각합니다.

+1

물론 배열을 제외하고. –

+0

네 맞아요. – tga

관련 문제