sizeof (C# 參考)
用於取得 Unmanaged 型別的位元組大小。Unmanaged 型別包含下表列出的內建型別以及下列項目:
列舉型別
指標型別
使用者定義的結構,不包含任何欄位或者為參考型別的屬性。
下列範例顯示如何擷取 int 的大小。
// Constant value 4:
int intSize = sizeof(int);
備註
從 C# 2.0 版開始,將 sizeof 套用至內建型別 (Primitive Type) 時,不再需要使用 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 (Unicode) |
sizeof(float) |
4 |
sizeof(double) |
8 |
sizeof(decimal) |
16 |
sizeof(bool) |
1 |
至於所有其他型別,包括結構 (Struct),sizeof 運算子只能用於 unsafe 程式碼區塊。雖然您可以使用 Marshal.SizeOf 方法,但是這個方法傳回的值不一定等於 sizeof 傳回的值。Marshal.SizeOf 會傳回型別經過封送處理後的大小,而 sizeof 則傳回經過 Common Language Runtime 配置的大小,包括任何填補。
範例
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# 語法和用法的限定來源。