MethodImplAttributes Enumeração
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Especifica flags para os atributos de uma implementação de método.
Esta enumeração suporta uma combinação bit-a-bit dos respetivos valores membro.
Esta API suporta a infraestrutura de produtos e não é pressuposta para ser utilizada diretamente a partir do seu 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
- Herança
- Atributos
Campos
| Name | Valor | Description |
|---|---|---|
| IL | 0 | Especifica que a implementação do método está na linguagem intermédia Microsoft (MSIL). |
| Managed | 0 | Especifica que o método está implementado em código gerido. |
| Native | 1 | Especifica que a implementação do método é nativa. |
| OPTIL | 2 | Especifica que a implementação do método está em Linguagem Intermédia Otimizada (OPTIL). |
| CodeTypeMask | 3 | Especifica flags sobre o tipo de código. |
| Runtime | 3 | Especifica que a implementação do método é fornecida pelo tempo de execução. |
| ManagedMask | 4 | Especifica se o método está implementado em código gerido ou não. |
| Unmanaged | 4 | Especifica que o método está implementado em código não gerido. |
| NoInlining | 8 | Especifica que o método não pode ser em linha. |
| ForwardRef | 16 | Especifica que o método não está definido. |
| Synchronized | 32 | Especifica que o método é single-threaded através do corpo. Os métodos estáticos ( |
| NoOptimization | 64 | Especifica que o método não é otimizado pelo compilador just-in-time (JIT) nem pela geração nativa de código (ver Ngen.exe) ao depurar possíveis problemas de geração de código. |
| PreserveSig | 128 | Especifica que a assinatura do método é exportada exatamente como declarado. |
| AggressiveInlining | 256 | Especifica que o método deve ser alinhado sempre que possível. |
| SecurityMitigations | 1024 | Este membro está reservado para uso futuro. Foi introduzido no .NET Framework 4.8. |
| InternalCall | 4096 | Especifica uma chamada interna. |
| MaxMethodImplVal | 65535 | Especifica um valor de verificação de alcance. |
Observações
Os atributos são combinados usando a operação bit a bit OR da seguinte forma:
Máscaras de implementação de código:
CodeTypeMaskILNativeOPTILRuntime
Máscaras controladas:
ManagedMaskUnmanagedManaged
Informação de implementação e máscaras de interoperabilidade:
ForwardRefPreserveSigInternalCallSynchronizedNoInliningNoOptimizationMaxMethodImplValSecurityMitigations(Disponível a partir do .NET Framework 4.8.)
Note
O bloqueio na instância ou no tipo, tal como com o Synchronized flag, não é recomendado para tipos públicos, porque código diferente do seu pode aceitar bloqueios em tipos e instâncias públicas. Isto pode causar bloqueios ou outros problemas de sincronização.