MethodImplOptions MethodImplOptions MethodImplOptions MethodImplOptions Enum

Определение

Сообщает подробные сведения о реализации метода.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
Наследование
MethodImplOptionsMethodImplOptionsMethodImplOptionsMethodImplOptions
Атрибуты

Поля

AggressiveInlining AggressiveInlining AggressiveInlining AggressiveInlining 256

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

AggressiveOptimization AggressiveOptimization AggressiveOptimization AggressiveOptimization 512
ForwardRef ForwardRef ForwardRef ForwardRef 16

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

InternalCall InternalCall InternalCall InternalCall 4096

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

NoInlining NoInlining NoInlining NoInlining 8

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

NoOptimization NoOptimization NoOptimization 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 PreserveSig PreserveSig PreserveSig 128

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

SecurityMitigations SecurityMitigations SecurityMitigations 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 Synchronized Synchronized 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 Unmanaged Unmanaged 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.

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