Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gibt den Feldoffset der nicht verwalteten Form der verwalteten Klasse zurück.
Namespace: System.Runtime.InteropServices
Assembly: mscorlib (in mscorlib.dll)
Syntax
'Declaration
Public Shared Function OffsetOf ( _
t As Type, _
fieldName As String _
) As IntPtr
'Usage
Dim t As Type
Dim fieldName As String
Dim returnValue As IntPtr
returnValue = Marshal.OffsetOf(t, fieldName)
public static IntPtr OffsetOf (
Type t,
string fieldName
)
public:
static IntPtr OffsetOf (
Type^ t,
String^ fieldName
)
public static IntPtr OffsetOf (
Type t,
String fieldName
)
public static function OffsetOf (
t : Type,
fieldName : String
) : IntPtr
Parameter
- t
Ein Type, der die angegebene Klasse angibt. Sie müssen das StructLayoutAttribute auf die Klasse anwenden.
- fieldName
Das Feld im t-Parameter.
Rückgabewert
Der Offset in Bytes für den fieldName-Parameter in der für Plattformaufrufe deklarierten Klasse t.
Ausnahmen
| Ausnahmetyp | Bedingung |
|---|---|
Die Klasse kann nicht als Struktur exportiert werden, oder das Feld ist nicht öffentlich. Ab .NET Framework, Version 2.0, ist das Feld möglicherweise privat. |
|
Der t-Parameter ist NULL (Nothing in Visual Basic). |
Hinweise
OffsetOf stellt den Offset für das nicht verwaltete Strukturlayout bereit. Dieser entspricht nicht unbedingt dem Offset des verwalteten Strukturlayouts. Durch Marshalling der Struktur kann das Layout transformiert und der Offset geändert werden. Der t-Parameter kann ein Werttyp oder ein formatierter Verweistyp sein (mit sequenziellem oder explizitem Layout). Sie können die Größe des gesamten Layouts mit der Marshal.SizeOf-Methode abrufen. Weitere Informationen finden Sie unter Standardmäßiges Marshalling für Werttypen.
Hinweis
Ab .NET Framework, Version 2.0, macht OffsetOf möglicherweise private Felder verfügbar.
Hinweis
Diese Methode verwendet SecurityAction.LinkDemand, um einen Aufruf aus nicht vertrauenswürdigem Code zu verhindern. Nur der direkte Aufrufer muss über die SecurityPermissionAttribute.UnmanagedCode-Berechtigung verfügen. Wenn der Code aus teilweise vertrauenswürdigem Code aufgerufen werden kann, dürfen Benutzereingaben nicht ohne Validierung an Methoden der Marshal-Klasse übergeben werden. Wichtige Einschränkungen bei der Verwendung des LinkDemand-Members finden Sie unter "Demand" und "LinkDemand".
.NET Framework-Sicherheit
- SecurityPermission für die Berechtigung zum Aufrufen von nicht verwaltetem Code. Zugeordnete Enumeration: UnmanagedCode Sicherheitsaktion: LinkDemand
Plattformen
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
Siehe auch
Referenz
Marshal-Klasse
Marshal-Member
System.Runtime.InteropServices-Namespace
SizeOf