MethodImplOptions Перечисление

Определение

Сообщает подробные сведения о реализации метода.Defines the details of how a method is implemented.

Это перечисление имеет атрибут FlagsAttribute, который разрешает побитовое сочетание значений его элементов.

public enum class MethodImplOptions
[System.Flags]
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public enum MethodImplOptions
type MethodImplOptions = 
Public Enum MethodImplOptions
Наследование
MethodImplOptions
Атрибуты

Поля

AggressiveInlining 256

Метод должен по возможности выполняться как встроенный.The method should be inlined if possible.

AggressiveOptimization 512

Метод содержит горячий путь и должен быть оптимизирован.The method contains a hot path and should be optimized.

ForwardRef 16

Метод объявлен, но его реализация находится в другом месте.The method is declared, but its implementation is provided elsewhere.

InternalCall 4096

Вызов является внутренним, то есть вызывает метод, который реализован в пределах той же среды CLR.The call is internal, that is, it calls a method that is implemented within the common language runtime.

NoInlining 8

Метод нельзя выполнять как встроенный.The method cannot be inlined. Встраивание — это способ оптимизации, при котором вместо вызова метода в код вставляется тело метода.Inlining is an optimization by which a method call is replaced with the method body.

NoOptimization 64

Метод не оптимизирован JIT-компилятором или службой создания машинного кода (см. Ngen.exe) при отладке потенциальных проблем с созданием кода.The method is not optimized by the just-in-time (JIT) compiler or by native code generation (see Ngen.exe) when debugging possible code generation problems.

PreserveSig 128

Подпись метода должна экспортироваться в точном соответствии с объявленной.The method signature is exported exactly as declared.

SecurityMitigations 1024

JIT-компилятор должен искать атрибуты устранения рисков безопасности, такие как определяемый пользователем System.Runtime.CompilerServices.SecurityMitigationsAttribute.The JIT compiler should look for security mitigation attributes, such as the user-defined System.Runtime.CompilerServices.SecurityMitigationsAttribute. В случае обнаружения JIT-компилятор применяет все соответствующие варианты устранения рисков безопасности.If found, the JIT compiler applies any related security mitigations. Доступно начиная с .NET Framework 4.8.Available starting with .NET Framework 4.8.

Synchronized 32

В определенный момент времени метод может выполняться только одним потоком.The method can be executed by only one thread at a time. Статические методы выполняют блокировку по типу, а методы экземпляра — по экземпляру.Static methods lock on the type, whereas instance methods lock on the instance. Только один поток может выполняться для любой из функций экземпляра, и только один поток может выполняться для любой из статических функций класса.Only one thread can execute in any of the instance functions, and only one thread can execute in any of a class's static functions.

Unmanaged 4

Метод реализован в неуправляемом коде.The method is implemented in unmanaged code.

Комментарии

Это перечисление используется с MethodImplAttribute атрибутом.This enumeration is used with the MethodImplAttribute attribute.

Можно указать несколько MethodImplOptions значений с помощью побитового оператора или.You can specify multiple MethodImplOptions values by using the bitwise OR operator.

Примечание

Блокировка экземпляра или типа, как и флаг Synchronized, не рекомендуется для открытых типов, так как код, отличный от собственного, может принимать блокировки на открытые типы и экземпляры.Locking on the instance or on the type, as with the Synchronized flag, is not recommended for public types, because code other than your own can take locks on public types and instances. Это может привести к взаимоблокировкам или другим проблемам синхронизации.This might cause deadlocks or other synchronization problems.

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