Marshal.SizeOf-Methode: (Type)
Veröffentlicht: Oktober 2016
Gibt die Größe eines nicht verwalteten Typs in Bytes zurück.
Namespace: System.Runtime.InteropServices
Assembly: mscorlib (in mscorlib.dll)
Syntax
public static int SizeOf(
Type t
)
public:
static int SizeOf(
Type^ t
)
static member SizeOf :
t:Type -> int
Public Shared Function SizeOf (
t As Type
) As Integer
Parameter
t
Type: System.TypeDer Typ, dessen Größe zurückgegeben werden soll.
Rückgabewert
Type: System.Int32
Die Größe des angegebenen Typs in nicht verwaltetem Code.
Ausnahmen
Exception | Condition |
---|---|
ArgumentException | Die t Parameter ist ein generischer Typ. |
ArgumentNullException | Der t-Parameter ist null. |
Hinweise
Sie können diese Methode verwenden, wenn Sie nicht über eine Struktur verfügen. Das Layout muss sequenziell oder explizit sein.
Die zurückgegebene Größe ist die Größe des nicht verwalteten Typs. Die verwalteten und nicht verwalteten Größe eines Objekts können sich unterscheiden. Bei Zeichentypen wird die Größe von beeinflusst die CharSet Wert, der auf die Klasse angewendet.
Beispiele
Im folgenden Beispiel wird das Aufrufen der SizeOf-Methode veranschaulicht. Dieses Codebeispiel ist Teil eines umfangreicheren Beispiels für die Marshal Klasse.
// Demonstrate the use of the SizeOf method of the Marshal class.
Console.WriteLine("Number of bytes needed by a Point object: {0}",
Marshal.SizeOf(typeof(Point)));
Point p = new Point();
Console.WriteLine("Number of bytes needed by a Point object: {0}",
Marshal.SizeOf(p));
' Demonstrate the use of the SizeOf method of the Marshal class.
Console.WriteLine("Number of bytes needed by a Point object: {0}", Marshal.SizeOf(GetType(Point)))
Dim p As New Point()
Console.WriteLine("Number of bytes needed by a Point object: {0}", Marshal.SizeOf(p))
// Demonstrate the use of the SizeOf method of the Marshal
// class.
Console::WriteLine("Number of bytes needed by a Point object: {0}",
Marshal::SizeOf(Point::typeid));
Point point;
Console::WriteLine("Number of bytes needed by a Point object: {0}",
Marshal::SizeOf(point));
Versionsinformationen
Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 1.1
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0
Windows Phone
Verfügbar seit 8.1
Siehe auch
CharSet
SizeOf Überladen
Marshal-Klasse
System.Runtime.InteropServices-Namespace
Zurück zum Anfang