共用方式為


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# 語法和用法的決定性來源。

請參閱

參考

C# 關鍵字

運算子關鍵字 (C# 參考)

enum (C# 參考)

Unsafe 程式碼和指標 (C# 程式設計手冊)

結構 (C# 程式設計手冊)

常數 (C# 程式設計手冊)

概念

C# 程式設計手冊

其他資源

C# 參考