MethodImplAttributes Перечисление
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Задает флаги для атрибутов реализации метода.
Это перечисление поддерживает побитовую комбинацию значений его членов.
Этот API поддерживает инфраструктуру продукта и не предназначен для использования непосредственно из программного кода.
public enum class MethodImplAttributes
public enum MethodImplAttributes
[System.Flags]
[System.Serializable]
public enum MethodImplAttributes
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public enum MethodImplAttributes
type MethodImplAttributes =
[<System.Flags>]
[<System.Serializable>]
type MethodImplAttributes =
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type MethodImplAttributes =
Public Enum MethodImplAttributes
- Наследование
- Атрибуты
Поля
AggressiveInlining | 256 | Указывает, что метод должен по возможности выполняться как встроенный. |
AggressiveOptimization | 512 | Указывает, что метод необходимо по возможности оптимизировать. |
CodeTypeMask | 3 | Задает флаги для типа кода. |
ForwardRef | 16 | Указывает, что метод не определен. |
IL | 0 | Указывает, что метод реализуется на языке MSIL. |
InternalCall | 4096 | Указывает внутренний вызов. |
Managed | 0 | Указывает, что метод реализуется в управляемом коде. |
ManagedMask | 4 | Указывает, реализуется ли метод в управляемом или неуправляемом коде. |
MaxMethodImplVal | 65535 | Указывает значение диапазона проверки. |
Native | 1 | Указывает, что для метода используется стандартная реализация. |
NoInlining | 8 | Указывает, что метод нельзя выполнять как встроенный. |
NoOptimization | 64 | Указывает, что метод не оптимизирован JIT-компилятором или службой генерирования машинного кода (см. Ngen.exe) при отладке потенциальных проблем с генерированием кода. |
OPTIL | 2 | Указывает, что метод реализуется на языке OPIL. |
PreserveSig | 128 | Указывает, что подпись метода должна экспортироваться в точном соответствии с объявленной. |
Runtime | 3 | Указывает, что реализация метода предоставляется средой выполнения. |
SecurityMitigations | 1024 | Этот элемент зарезервирован для использования в будущем. Он появился в .NET Framework 4.8. |
Synchronized | 32 | Указывает, что метод полностью выполняется как однопотоковый. Статические методы ( |
Unmanaged | 4 | Указывает, что метод реализуется в неуправляемом коде. |
Комментарии
Атрибуты объединяются с помощью побитовой операции OR следующим образом:
Маски реализации кода:
CodeTypeMask
IL
Native
OPTIL
Runtime
Управляемые маски:
ManagedMask
Unmanaged
Managed
Сведения о реализации и маски взаимодействия:
ForwardRef
PreserveSig
InternalCall
Synchronized
NoInlining
NoOptimization
MaxMethodImplVal
SecurityMitigations
(Доступно начиная с .NET Framework 4.8.)
Примечание
Блокировка экземпляра или типа, как и с флагом Synchronized
, не рекомендуется для открытых типов, так как код, отличный от собственного, может принимать блокировки для открытых типов и экземпляров. Это может привести к взаимоблокировкам или другим проблемам синхронизации.