MethodImplAttributes Enumeração
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Especifica os sinalizadores para os atributos de uma implementação do método.
Essa enumeração dá suporte a uma combinação bit a bit dos valores de membro.
Esta API dá suporte à infraestrutura do produto e não deve ser usada diretamente 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
| Nome | Valor | Description |
|---|---|---|
| AggressiveInlining | 256 | Especifica que o método deve estar em linha sempre que possível. |
| AggressiveOptimization | 512 | Especifica que o método deve ser otimizado sempre que possível. |
| CodeTypeMask | 3 | Especifica sinalizadores sobre o tipo de código. |
| ForwardRef | 16 | Especifica que o método não é definido. |
| IL | 0 | Especifica que a implementação do método é feita em MSIL (Microsoft Intermediate Language). |
| InternalCall | 4096 | Especifica uma chamada interna. |
| Managed | 0 | Especifica que o método é implementado em um código gerenciado. |
| ManagedMask | 4 | Especifica se o método é implementado em um código gerenciado ou não gerenciado. |
| MaxMethodImplVal | 65535 | Especifica um valor de verificação de intervalo. |
| Native | 1 | Especifica que a implementação do método é nativa. |
| NoInlining | 8 | Especifica que o método não pode estar em linha. |
| NoOptimization | 64 | Especifica que o método não é otimizado pelo compilador JIT (Just-In-Time) nem pela geração de código nativo (consulte Ngen.exe) ao depurar possíveis problemas de geração de código. |
| OPTIL | 2 | Especifica que a implementação do método é feita em OPTIL (Optimized Intermediate Language). |
| PreserveSig | 128 | Especifica que a assinatura do método é exportada exatamente como declarado. |
| Runtime | 3 | Especifica que a implementação do método é fornecida pelo runtime. |
| SecurityMitigations | 1024 | Este membro é reservado para uso futuro. Introduzido no .NET Framework 4.8. |
| Synchronized | 32 | Especifica que o método é single-threaded por meio do corpo. Métodos estáticos ( |
| Unmanaged | 4 | Especifica que o método é implementado em um código não gerenciado. |
Comentários
Os atributos são combinados usando a operação OR bit a bit da seguinte maneira:
Máscaras de implementação de código:
CodeTypeMaskILNativeOPTILRuntime
Máscaras gerenciadas:
ManagedMaskUnmanagedManaged
Informações de implementação e máscaras de interoperabilidade:
ForwardRefPreserveSigInternalCallSynchronizedNoInliningNoOptimizationMaxMethodImplValSecurityMitigations(Disponível a partir do .NET Framework 4.8.)
Observação
O bloqueio na instância ou no tipo, como no Synchronized sinalizador, não é recomendado para tipos públicos, pois o código diferente do seu pode ter bloqueios em tipos públicos e instâncias. Isso pode causar deadlocks ou outros problemas de sincronização.