2008-12-12 3 views
7

같은 말을 할 수있는 방법이 있습니까 :C#에서 형식 크기를 결정하는 간단한 방법이 있습니까?

sizeof (유형)? 또는 크기를 입력하십시오.

는 지금은 같은 코드를 사용하여 한 번에 찾고 :

if (type.Equals(typeof(int))) 
    return sizeof(int); 
else if (type.Equals(typeof(long))) 
    return sizeof(long); 

등, 등, 모든 단일 데이터 유형.

더 깨끗한 솔루션이 필요합니까?

+0

당신이하고 싶은 이유를 설명 할 수 있습니까? – leppie

+0

재미 있네요, 어제이 정확한 질문을 거의 게시했지만 시간이 없었습니다. ADO.NET DbParameters를 사용할 때도 똑같은 것이 필요합니다. 때로는 바이트 단위의 개체 크기 인 DbParameter.Size를 설정해야합니다. 나도 당신이 원래 게시 한 것과 같은 큰 switch 문을 가지고있다. – CodingWithSpike

답변

13
+0

이것은 메모리에있는 특정 객체 나 값의 크기를 얻는 것처럼 보이는데, 이것은 반드시 유형의 크기와 같지 않다. –

+0

또한 유형 과부하가 있습니다. 나는 실수로 Object 버전에 연결했다. 곧 업데이트 될 것입니다 – JaredPar

+0

여전히 문서에서 : "반환되는 크기는 실제로 관리되지 않는 유형의 크기입니다. 개체의 관리되지 않는 크기와 관리되는 크기는 다를 수 있습니다. 문자 유형의 경우 크기는 적용된 CharSet 값의 영향을받습니다 그 계급에게. " 유스 케이스에 따라 오도 할 수 있습니다. –

1

을 시도,이 데이터 액세스를 위해 인 경우에 당신에게 좋은 열거를 제공 (IConvertible의 구성원) type.GetTypeCode()를 할 수있다 스위치를 켜십시오. 이 질문에

-4

이동할 수 있습니다. Convert.ToString(type.MaxValue, 2).Length/8 ?

관련 문제