MethodImplOptions Enumeración

Definición

Especifica constantes que definen los detalles de cómo se implementa un método.

Esta enumeración admite una combinación bit a bit de sus valores de miembro.

public enum class MethodImplOptions
[System.Flags]
public enum MethodImplOptions
[System.Flags]
[System.Serializable]
public enum MethodImplOptions
[System.Flags]
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public enum MethodImplOptions
[<System.Flags>]
type MethodImplOptions = 
[<System.Flags>]
[<System.Serializable>]
type MethodImplOptions = 
[<System.Flags>]
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type MethodImplOptions = 
Public Enum MethodImplOptions
Herencia
MethodImplOptions
Atributos

Campos

AggressiveInlining 256

Si es posible, el método debe estar insertado.

El uso innecesario de este atributo puede reducir el rendimiento. El atributo puede provocar que se encuentren límites de implementación que darán lugar a código generado más lento. Mida siempre el rendimiento para asegurarse de que resulta útil aplicar este atributo.

AggressiveOptimization 512

El método contiene código que siempre debe optimizarse para el rendimiento.

Rara vez es adecuado usar este atributo. Los métodos que aplican este atributo omiten el primer nivel de compilación en capas y, por tanto, no se benefician de las optimizaciones que se basan en la compilación en capas. Estas optimizaciones incluyen PGO dinámico y optimizaciones basadas en clases inicializadas. El uso de este atributo también podría aumentar el uso de memoria. Mida siempre el rendimiento para asegurarse de que resulta útil aplicar este atributo.

ForwardRef 16

El método se declara, pero su implementación se proporciona en otra parte.

InternalCall 4096

La llamada es interna; es decir, llama a un método que se implementa en Common Language Runtime.

NoInlining 8

El método no se puede insertar. La inserción es una optimización por la cual una llamada al método se reemplaza por el cuerpo del método.

NoOptimization 64

El método no está optimizado por el compilador just-in-time (JIT) o por la generación de código nativo (consulte Ngen.exe) al depurar los posibles problemas de generación de código.

PreserveSig 128

La firma del método se exporta tal y como se declara.

SecurityMitigations 1024

Este miembro se reserva para uso futuro. Se presentó en .NET Framework 4.8.

Synchronized 32

El método lo puede ejecutar un único subproceso a la vez. Los métodos estáticos bloquean el tipo, mientras que los métodos de instancia bloquean la instancia. Solo un subproceso puede ejecutarse en cualquiera de las funciones de la instancia y solo un subproceso puede ejecutarse en cualquiera de las funciones estáticas de la clase.

Unmanaged 4

El método se implementa en código no administrado.

Comentarios

Esta enumeración se usa con el MethodImplAttribute atributo .

Puede especificar varios MethodImplOptions valores mediante el operador OR bit a bit.

Nota

No se recomienda bloquear en la instancia o en el tipo , como con la Synchronized marca , para los tipos públicos, porque el código distinto del suyo puede tomar bloqueos en tipos y instancias públicos. Esto puede provocar interbloqueos u otros problemas de sincronización.

Se aplica a