sizeof (C#-Referenz)
Aktualisiert: November 2007
Wird verwendet, um für einen Werttyp die Größe in Bytes zu erhalten. Zum Beispiel kann die Größe des int-Typs wie folgt abgerufen werden:
int intSize = sizeof(int);
Hinweise
Der Operator sizeof kann nur auf Werttypen angewendet werden, nicht auf Referenztypen.
Hinweis: |
---|
Ab Version 2.0 von C# ist der unsafe-Modus für die Anwendung von sizeof auf primitive Typen nicht mehr erforderlich. |
Der Operator sizeof darf nicht überladen werden. Die vom Operator sizeof zurückgegebenen Werte sind vom Typ int. Die folgende Tabelle zeigt die konstanten Werte, die die Größen bestimmter primitiver Typen repräsentieren.
Ausdruck |
Ergebnis |
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 (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, diese gibt allerdings nicht immer denselben Wert wie sizeof zurück. Marshal.SizeOf gibt die Größe nach dem Marshalling des Typs zurück, während sizeof die Größe (einschließlich der Abstände) zurückgibt, wie sie von CLR (Common Language Runtime) bereitgestellt 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 finden Sie in den folgenden Abschnitten von C#-Programmiersprachenspezifikation:
- 18.5.8 Der Operator "sizeof"
Siehe auch
Konzepte
Referenz
Operatorschlüsselwörter (C#-Referenz)