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
- Наследование
- Атрибуты
Поля
| Имя | Значение | Описание |
|---|---|---|
| IL | 0 | Указывает, что реализация метода находится в Microsoft промежуточном языке (MSIL). |
| Managed | 0 | Указывает, что метод реализуется в управляемом коде. |
| Native | 1 | Указывает, что реализация метода является собственной. |
| OPTIL | 2 | Указывает, что реализация метода находится на оптимизированном промежуточном языке (OPTIL). |
| CodeTypeMask | 3 | Задает флаги о типе кода. |
| Runtime | 3 | Указывает, что реализация метода предоставляется средой выполнения. |
| ManagedMask | 4 | Указывает, реализуется ли метод в управляемом или неуправляемом коде. |
| Unmanaged | 4 | Указывает, что метод реализуется в неуправляемом коде. |
| NoInlining | 8 | Указывает, что метод не может быть вложен. |
| ForwardRef | 16 | Указывает, что метод не определен. |
| Synchronized | 32 | Указывает, что метод является однопоточным по тексту. Статические методы ( |
| NoOptimization | 64 | Указывает, что метод не оптимизирован компилятором JIT или машинным созданием кода (см. Ngen.exe) при отладке возможных проблем создания кода. |
| PreserveSig | 128 | Указывает, что подпись метода экспортируется точно так же, как объявлена. |
| AggressiveInlining | 256 | Указывает, что метод следует встраивается везде, где это возможно. |
| AggressiveOptimization | 512 | Указывает, что метод должен быть оптимизирован по возможности. |
| SecurityMitigations | 1024 | Этот элемент зарезервирован для дальнейшего использования. Она появилась в .NET Framework 4.8. |
| InternalCall | 4096 | Указывает внутренний вызов. |
| Async | 8192 | |
| MaxMethodImplVal | 65535 | Указывает значение проверки диапазона. |
Комментарии
Атрибуты объединяются с помощью побитовой операции OR следующим образом:
Маски реализации кода:
CodeTypeMaskILNativeOPTILRuntime
Управляемые маски:
ManagedMaskUnmanagedManaged
Сведения о реализации и маски взаимодействия:
ForwardRefPreserveSigInternalCallSynchronizedNoInliningNoOptimizationMaxMethodImplValSecurityMitigations(доступно начиная с .NET Framework 4.8.)
Замечание
Блокировка экземпляра или типа, как и Synchronized флаг, не рекомендуется для общедоступных типов, так как код, отличный от собственного, может принимать блокировки на общедоступные типы и экземпляры. Это может привести к взаимоблокировкам или другим проблемам синхронизации.