MethodImplOptions Enumeración
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
- Atributos
Campos
| Nombre | Valor | Description |
|---|---|---|
| Unmanaged | 4 | El método se implementa en código no administrado. |
| NoInlining | 8 | El método no se puede insertar. La inserción es una optimización por la que se reemplaza una llamada al método por el cuerpo del método. |
| ForwardRef | 16 | El método se declara, pero su implementación se proporciona en otro lugar. |
| Synchronized | 32 | El método solo se puede ejecutar mediante un subproceso a la vez. Los métodos estáticos se bloquean en el tipo, mientras que los métodos de instancia se bloquean en la instancia. Solo un subproceso puede ejecutarse en cualquiera de las funciones de instancia y solo un subproceso puede ejecutarse en cualquiera de las funciones estáticas de una clase. |
| NoOptimization | 64 | El compilador Just-In-Time (JIT) no optimiza el método ni la generación de código nativo (consulte Ngen.exe) al depurar posibles problemas de generación de código. |
| PreserveSig | 128 | La firma del método se exporta exactamente como se declara. |
| AggressiveInlining | 256 | El método debe estar insertado si es posible. 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. |
| SecurityMitigations | 1024 | Este miembro está reservado para uso futuro. Se introdujo en .NET Framework 4.8. |
| InternalCall | 4096 | La llamada es interna, es decir, llama a un método que se implementa en Common Language Runtime. |
Comentarios
Esta enumeración se usa con el MethodImplAttribute atributo .
Puede especificar varios MethodImplOptions valores mediante el operador OR bit a bit.
Note
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 los tipos y instancias públicos. Esto puede provocar interbloqueos u otros problemas de sincronización.