FieldOffsetAttribute-Klasse
Veröffentlicht: Oktober 2016
Gibt die physische Position von Feldern innerhalb der nicht verwalteten Darstellung einer Klasse oder Struktur an.
Namespace: System.Runtime.InteropServices
Assembly: mscorlib (in mscorlib.dll)
Vererbungshierarchie
System.Object
System.Attribute
System.Runtime.InteropServices.FieldOffsetAttribute
Syntax
[AttributeUsageAttribute(AttributeTargets.Field, Inherited = false)]
[ComVisibleAttribute(true)]
public sealed class FieldOffsetAttribute : Attribute
[AttributeUsageAttribute(AttributeTargets::Field, Inherited = false)]
[ComVisibleAttribute(true)]
public ref class FieldOffsetAttribute sealed : Attribute
[<Sealed>]
[<AttributeUsageAttribute(AttributeTargets.Field, Inherited = false)>]
[<ComVisibleAttribute(true)>]
type FieldOffsetAttribute =
class
inherit Attribute
end
<AttributeUsageAttribute(AttributeTargets.Field, Inherited := False)>
<ComVisibleAttribute(True)>
Public NotInheritable Class FieldOffsetAttribute
Inherits Attribute
Konstruktoren
Name | Beschreibung | |
---|---|---|
FieldOffsetAttribute(Int32) | Initialisiert eine neue Instanz der FieldOffsetAttribute -Klasse mit dem Offset in der Struktur bis zum Anfang des Felds. |
Eigenschaften
Name | Beschreibung | |
---|---|---|
TypeId | Ruft bei Implementierung in einer abgeleiteten Klasse einen eindeutigen Bezeichner für dieses Attribute ab.(Geerbt von „Attribute“.) |
|
Value | Ruft den Offset vom Anfang der Struktur zum Anfang des Felds. |
Methoden
Name | Beschreibung | |
---|---|---|
Equals(Object) | Diese API unterstützt die Produkt Infrastruktur und sollte nicht direkt aus dem Code verwendet werden. Gibt einen Wert zurück, der angibt, ob diese Instanz gleich einem angegebenen Objekt ist.(Geerbt von „Attribute“.) |
|
GetHashCode() | Gibt den Hashcode für diese Instanz zurück.(Geerbt von „Attribute“.) |
|
GetType() | Ruft den Type der aktuellen Instanz ab.(Geerbt von „Object“.) |
|
IsDefaultAttribute() | Gibt beim Überschreiben in einer abgeleiteten Klasse an, ob der Wert der Instanz der Standardwert für die abgeleitete Klasse ist.(Geerbt von „Attribute“.) |
|
Match(Object) | Ruft beim Überschreiben in einer abgeleiteten Klasse gibt einen Wert, der angibt, ob diese Instanz gleich ein angegebenen Objekt ist.(Geerbt von „Attribute“.) |
|
ToString() | Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.(Geerbt von „Object“.) |
Explizite Schnittstellenimplementierungen
Name | Beschreibung | |
---|---|---|
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) | Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu.(Geerbt von „Attribute“.) |
|
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) | Ruft die Typinformationen für ein Objekt ab, mit deren Hilfe die Typinformationen für eine Schnittstelle abgerufen werden können.(Geerbt von „Attribute“.) |
|
_Attribute.GetTypeInfoCount(UInt32) | Ruft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1).(Geerbt von „Attribute“.) |
|
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) | Stellt den Zugriff auf von einem Objekt verfügbar gemachte Eigenschaften und Methoden bereit.(Geerbt von „Attribute“.) |
Hinweise
Sie können dieses Attribut auf Felder anwenden.
Dieses Attribut wird verwendet, wenn System.Runtime.InteropServices.StructLayoutAttribute, mit LayoutKind.Explicit an seinen Konstruktor übergeben, gilt für eine Klasse oder Struktur an den Offset der einzelnen nicht - static oder konstanter Member innerhalb der nicht verwalteten Darstellung dieser Klasse oder Struktur.
Beispiele
Im folgenden Beispiel wird veranschaulicht, wie gelten die FieldOffsetAttribute auf Member einer Klasse mit einem expliziten Layout.
[StructLayout(LayoutKind.Explicit)]
public class SYSTEM_INFO
{
[FieldOffset(0)] public ulong OemId;
[FieldOffset(8)] public ulong PageSize;
[FieldOffset(16)] public ulong ActiveProcessorMask;
[FieldOffset(24)] public ulong NumberOfProcessors;
[FieldOffset(32)] public ulong ProcessorType;
}
<StructLayout(LayoutKind.Explicit)> _
Public Class SYSTEM_INFO
<FieldOffset(0)> Private OemId As System.UInt64
<FieldOffset(8)> Private PageSize As System.UInt64
<FieldOffset(16)> Private ActiveProcessorMask As System.UInt64
<FieldOffset(24)> Private NumberOfProcessors As System.UInt64
<FieldOffset(32)> Private ProcessorType As System.UInt64
End Class
[StructLayout(LayoutKind::Explicit)]
public ref class SYSTEM_INFO
{
public:
[FieldOffset(0)]
UInt64 OemId;
[FieldOffset(8)]
UInt64 PageSize;
[FieldOffset(24)]
UInt64 ActiveProcessorMask;
[FieldOffset(32)]
UInt64 NumberOfProcessors;
[FieldOffset(40)]
UInt64 ProcessorType;
};
Ein umfangreicheres Codebeispiel finden Sie unter der System.Runtime.InteropServices.StructLayoutAttribute Klasse.
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
Threadsicherheit
Alle öffentlichen statischen Member ( Shared in Visual Basic) dieses Typs sind threadsicher. Die Threadsicherheit für Instanzmember ist nicht garantiert.
Siehe auch
LayoutKind
System.Runtime.InteropServices-Namespace
Zurück zum Anfang