Freigeben über


sizeof (C#-Referenz)

Wird verwendet, um für einen nicht verwalteten Typ die Größe in Bytes zu erhalten. Zu den nicht verwalteten Typen gehören die integrierten Datentypen in der nachfolgenden Tabelle sowie die folgenden:

  • Enumerationstypen

  • Zeigertypen

  • Benutzerdefinierte Strukturen ohne Felder oder Eigenschaften, die Verweistypen darstellen.

Im folgenden Beispiel wird veranschaulicht, wie die Größe eines int-Typs abgerufen wird:

// Constant value 4:
int intSize = sizeof(int); 

Hinweise

Ab Version 2.0 von C# ist der unsafe-Modus für die Anwendung von sizeof auf integrierte Typen nicht mehr erforderlich.

Der Operator sizeof kann nicht überladen werden. Die vom Operator sizeof zurückgegebenen Werte sind vom Typ int. In der folgenden Tabelle werden die konstanten Werte angezeigt, die durch sizeof-Ausdrücke mit bestimmten integrierten Datentypen als Operanden ersetzt werden.

Ausdruck

Konstantenwert

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

Für alle Typen einschließlich Strukturen kann der Operator sizeof nur in nicht sicheren Codeblocks verwendet werden. Sie können zwar die Marshal.SizeOf-Methode verwenden, jedoch stimmt der von dieser Methode zurückgegebene Wert nicht immer mit dem Wert überein, der von sizeof zurückgegeben wird. Marshal.SizeOf gibt die Größe des Typs nach dem Marshalling zurück. sizeof hingegen gibt die Größe des Typs nach Zuweisung durch die Common Language Runtime einschließlich Leerspeicher zurück.

Beispiel

    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#-Programmiersprachenspezifikation

Weitere Informationen erhalten Sie unter C#-Sprachspezifikation. Die Sprachspezifikation ist die verbindliche Quelle für die Syntax und Verwendung von C#.

Siehe auch

Referenz

C#-Schlüsselwörter

Operatorschlüsselwörter (C#-Referenz)

enum (C#-Referenz)

Unsicherer Code und Zeiger (C#-Programmierhandbuch)

Strukturen (C#-Programmierhandbuch)

Konstanten (C#-Programmierhandbuch)

Konzepte

C#-Programmierhandbuch

Weitere Ressourcen

C#-Referenz