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
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:
CodeTypeMask
IL
Native
OPTIL
Runtime
Máscaras gerenciadas:
ManagedMask
Unmanaged
Managed
Informações de implementação e máscaras de interoperabilidade:
ForwardRef
PreserveSig
InternalCall
Synchronized
NoInlining
NoOptimization
MaxMethodImplVal
SecurityMitigations
(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.