sizeof (C#-Referenz)

Wird verwendet, um die Größe eines nicht verwalteten Typs in Bytes abzurufen. Nicht verwaltete Typen umfassen die in der unteren Tabelle aufgelisteten integrierten Typen sowie folgende Typen:

  • Enumerationstypen

  • Zeigertypen

  • Benutzerdefinierte Strukturen, die keine Felder oder Eigenschaften enthalten, die Verweistypen sind

Im folgenden Beispiel wird gezeigt, wie Sie die Größe von int abrufen:

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

Hinweise

Ab C# Version 2.0 muss für das Anwenden von sizeof auf integrierte Typen nicht länger der Modus unsafe (unsicher) verwendet werden.

Der Operator sizeof kann nicht überladen werden. Die Rückgabewerte des Operators sizeof sind vom Typ int. Die folgende Tabelle zeigt die konstanten Werte, die als Ersatz für sizeof-Ausdrücke dienen, die über bestimmte integrierte Typen als Operanden verfügen.

Ausdruck Konstanter Wert
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

Bei allen anderen Typen, darunter Strukturen, kann der Operator sizeof nur in unsicheren Codeblöcken zugelassen werden. Sie können die Methode Marshal.SizeOf zwar verwenden, der von dieser Methode zurückgegebene Wert entspricht allerdings nicht immer dem von sizeof zurückgegeben Wert. Marshal.SizeOf gibt die Größe nach dem Marshalling des Typs zurück, während sizeof die Größe inklusive Abständen zurückgibt, die von der Common Language Runtime zugeordnet wurde.

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

C#-Referenz
C#-Programmierhandbuch
C#-Schlüsselwörter
Operator Keywords (Operatorschlüsselwörter)
enum
Unsicherer Code und Zeiger
Strukturen
Konstanten