
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:
Der sizeof-Operator kann nur auf Werttypen angewendet werden, nicht auf Verweistypen.
Hinweis |
|---|
Ab Version 2.0 von C# ist der unsafe-Modus für die Anwendung von sizeof auf vordefinierte Typen nicht mehr erforderlich. |
Der sizeof-Operator darf nicht überladen werden. Die vom sizeof-Operator zurückgegebenen Werte sind vom Typ int. Die folgende Tabelle zeigt die konstanten Werte, die die Größen bestimmter vordefinierter 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 sizeof-Operator nur in nicht sicheren Codeblocks verwendet werden. Sie können zwar die 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.
// cs_operator_sizeof.cs
// compile with: /unsafe
using System;
class MainClass
{
unsafe 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));
}
}
Ausgabe
The size of short is 2. The size of int is 4. The size of long is 8.
Weitere Informationen finden Sie in den folgenden Abschnitten von C#-Programmiersprachenspezifikation:
18.5.8 Der sizeof-Operator
Referenz
C#-SchlüsselwörterOperatorschlüsselwörter (C#-Referenz)
