MethodImplAttributes 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 las marcas de los atributos de una implementación de método.
Esta enumeración admite una combinación bit a bit de sus valores de miembro.
Esta API admite la infraestructura de producto y no está pensada para usarse directamente en el código.
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
- Herencia
- Atributos
Campos
| Nombre | Valor | Description |
|---|---|---|
| AggressiveInlining | 256 | Especifica que el método debe insertarse siempre que sea posible. |
| AggressiveOptimization | 512 | Especifica que el método debe optimizarse siempre que sea posible. |
| CodeTypeMask | 3 | Especifica las marcas relacionadas con el tipo de código. |
| ForwardRef | 16 | Especifica que el método no está definido. |
| IL | 0 | Especifica que la implementación del método está en lenguaje intermedio de Microsoft (MSIL). |
| InternalCall | 4096 | Especifica una llamada interna. |
| Managed | 0 | Especifica que el método se implemente en código administrado. |
| ManagedMask | 4 | Especifica que el método se implemente en código administrado y no administrado. |
| MaxMethodImplVal | 65535 | Especifica un valor de comprobación de intervalo. |
| Native | 1 | Especifica que la implementación del método es nativa. |
| NoInlining | 8 | Especifica que el método no se puede insertar. |
| NoOptimization | 64 | Especifica que 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. |
| OPTIL | 2 | Especifica que la implementación del método está en lenguaje intermedio optimizado (OPTIL). |
| PreserveSig | 128 | Especifica que la firma del método se exporta tal y como se declara. |
| Runtime | 3 | Especifica que la implementación del método se proporciona en tiempo de ejecución. |
| SecurityMitigations | 1024 | Este miembro se reserva para uso futuro. Se presentó en .NET Framework 4.8. |
| Synchronized | 32 | Especifica que el método tiene un único subproceso a través del cuerpo. Los métodos estáticos ( |
| Unmanaged | 4 | Especifica que el método se implemente en código no administrado. |
Comentarios
Los atributos se combinan mediante la operación OR bit a bit como se indica a continuación:
Máscaras de implementación de código:
CodeTypeMaskILNativeOPTILRuntime
Máscaras administradas:
ManagedMaskUnmanagedManaged
Información de implementación e máscaras de interoperabilidad:
ForwardRefPreserveSigInternalCallSynchronizedNoInliningNoOptimizationMaxMethodImplValSecurityMitigations(Disponible a partir de .NET Framework 4.8).
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.