Поделиться через


Marshal.OffsetOf Метод

Определение

Перегрузки

OffsetOf(Type, String)
Устаревшие..

Возвращает смещение поля для неуправляемой формы управляемого класса.

OffsetOf<T>(String)

Возвращает смещение поля для неуправляемой формы указанного управляемого класса.

OffsetOf(Type, String)

Исходный код:
Marshal.CoreCLR.cs
Исходный код:
Marshal.CoreCLR.cs
Исходный код:
Marshal.CoreCLR.cs

Внимание!

OffsetOf(Type, string) may be unavailable in future releases. Instead, use OffsetOf<T>(string). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296511

Возвращает смещение поля для неуправляемой формы управляемого класса.

public:
 static IntPtr OffsetOf(Type ^ t, System::String ^ fieldName);
[System.Obsolete("OffsetOf(Type, string) may be unavailable in future releases. Instead, use OffsetOf<T>(string). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296511")]
public static IntPtr OffsetOf (Type t, string fieldName);
public static IntPtr OffsetOf (Type t, string fieldName);
[<System.Obsolete("OffsetOf(Type, string) may be unavailable in future releases. Instead, use OffsetOf<T>(string). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296511")>]
static member OffsetOf : Type * string -> nativeint
static member OffsetOf : Type * string -> nativeint
Public Shared Function OffsetOf (t As Type, fieldName As String) As IntPtr

Параметры

t
Type

Тип значения или форматированный ссылочный тип, указывающий управляемый класс. К классу должен применяться StructLayoutAttribute.

fieldName
String

Поле внутри параметра t.

Возвращаемое значение

IntPtr

nativeint

Смещение (в байтах) для параметра fieldName в указанном классе, объявленном вызовом платформы.

Атрибуты

Исключения

Класс не может быть экспортирован как структура, или поле не является публичным. Начиная с версии 2.0 платформы .NET Framework поле может быть закрытым.

Параметр t имеет значение null.

Комментарии

OffsetOf предоставляет смещение с точки зрения макета неуправляемой структуры, которое не обязательно соответствует смещению макета управляемой структуры. Маршалинг структуры может преобразовать макет и изменить смещение. Параметр t может быть типом значения или форматированным ссылочным типом (с последовательным или явным макетом). Размер всего макета можно получить с помощью Marshal.SizeOf метода . Дополнительные сведения см. в разделе Маршалинг по умолчанию для типов значений.

Примечание

Начиная с .NET Framework версии 2.0, OffsetOf могут предоставлять закрытые поля.

См. также раздел

Применяется к

OffsetOf<T>(String)

Исходный код:
Marshal.cs
Исходный код:
Marshal.cs
Исходный код:
Marshal.cs

Возвращает смещение поля для неуправляемой формы указанного управляемого класса.

public:
generic <typename T>
 static IntPtr OffsetOf(System::String ^ fieldName);
public static IntPtr OffsetOf<T> (string fieldName);
static member OffsetOf : string -> nativeint
Public Shared Function OffsetOf(Of T) (fieldName As String) As IntPtr

Параметры типа

T

Управляемый тип значения или форматированный ссылочный тип. Примените атрибут StructLayoutAttribute к классу.

Параметры

fieldName
String

Имя поля в типе T.

Возвращаемое значение

IntPtr

nativeint

Смещение (в байтах) для параметра fieldName в указанном классе, объявленном вызовом платформы.

Комментарии

OffsetOf<T>(String) предоставляет смещение с точки зрения макета неуправляемой структуры, которое не обязательно соответствует смещению макета управляемой структуры. Маршалинг структуры может преобразовать макет и изменить смещение. Параметр T универсального типа может быть типом значения или форматированным ссылочным типом (с последовательным или явным макетом). Размер всего макета можно получить с помощью SizeOf<T>(T) метода . Дополнительные сведения см. в разделе Маршалинг по умолчанию для типов значений.

Примечание

Начиная с .NET Framework версии 2.0, OffsetOf могут предоставлять закрытые поля.

См. также раздел

Применяется к