Freigeben über


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.Type

    Der 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