sizeof(C# 참조)
관리되지 않는 형식에 대한 바이트 단위의 크기를 가져오는 데 사용됩니다. 관리되지 않는 형식에는 다음 표에 나열된 기본 제공 형식뿐 아니라 다음 형식도 포함됩니다.
열거형 형식
포인터 형식
참조 형식인 필드나 속성을 포함하지 않는 사용자 정의 구조체
다음 예제에서는 int의 크기를 검색하는 방법을 보여 줍니다.
// Constant value 4:
int intSize = sizeof(int);
설명
C# 버전 2.0부터는 기본 제공 형식에 sizeof를 적용할 때 unsafe 모드를 사용하지 않아도 됩니다.
sizeof 연산자는 오버로드되지 않습니다. sizeof 연산자가 반환하는 값은 int 형식입니다. 다음 표에서는 특정 기본 제공 형식을 피연산자로 사용하는 sizeof 식 대신 사용되는 상수 값을 보여 줍니다.
식 |
상수 값 |
---|---|
sizeof(sbyte) |
1 |
sizeof(byte) |
1 |
sizeof(short) |
2 |
sizeof(ushort) |
2 |
sizeof(int) |
4 |
sizeof(uint) |
4 |
sizeof(long) |
8 |
sizeof(ulong) |
8 |
sizeof(char) |
2(유니코드) |
sizeof(float) |
4 |
sizeof(double) |
8 |
sizeof(decimal) |
16 |
sizeof(bool) |
1 |
구조체를 포함한 다른 모든 형식의 경우에는 안전하지 않은 코드 블록에서만 sizeof 연산자를 사용할 수 있습니다. Marshal.SizeOf 메서드를 사용할 수 있지만 이 메서드가 반환하는 값이 sizeof가 반환하는 값과 항상 같지는 않습니다. Marshal.SizeOf는 형식이 마샬링된 후의 크기를 반환하지만, sizeof는 패딩을 포함하여 공용 언어 런타임에서 할당된 크기를 반환합니다.
예제
class MainClass
{
// unsafe not required for primitive types
static void Main()
{
Console.WriteLine("The size of short is {0}.", sizeof(short));
Console.WriteLine("The size of int is {0}.", sizeof(int));
Console.WriteLine("The size of long is {0}.", sizeof(long));
}
}
/*
Output:
The size of short is 2.
The size of int is 4.
The size of long is 8.
*/
C# 언어 사양
자세한 내용은 C# 언어 사양을 참조하세요. C# 언어 사양은 C# 구문 및 사용법에 대한 신뢰할 수 있는 소스입니다.
참고 항목
참조
안전하지 않은 코드 및 포인터(C# 프로그래밍 가이드)