MethodImplOptions 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 constantes que definem os detalhes de como um método é implementado.
Essa enumeração dá suporte a uma combinação bit a bit dos valores de membro.
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
- Herança
- Atributos
Campos
| Nome | Valor | Description |
|---|---|---|
| Unmanaged | 4 | O método é implementado em código não gerenciado. |
| NoInlining | 8 | O método não pode ser sublinhado. Inlining é uma otimização pela qual uma chamada de método é substituída pelo corpo do método. |
| ForwardRef | 16 | O método é declarado, mas sua implementação é fornecida em outro lugar. |
| Synchronized | 32 | O método pode ser executado por apenas um thread de cada vez. Métodos estáticos bloqueiam o tipo, enquanto os métodos de instância bloqueiam a instância. Apenas um thread pode ser executado em qualquer uma das funções de instância e apenas um thread pode ser executado em qualquer uma das funções estáticas de uma classe. |
| NoOptimization | 64 | O método não é otimizado pelo compilador just-in-time (JIT) ou pela geração de código nativo (consulte Ngen.exe) ao depurar possíveis problemas de geração de código. |
| PreserveSig | 128 | A assinatura do método é exportada exatamente como declarada. |
| AggressiveInlining | 256 | O método deve ser embutido, se possível. O uso desnecessário desse atributo pode reduzir o desempenho. O atributo pode fazer com que os limites de implementação sejam encontrados, o que resultará em um código gerado mais lento. Sempre meça o desempenho para garantir que seja útil aplicar esse atributo. |
| SecurityMitigations | 1024 | Esse membro é reservado para uso futuro. Ele foi introduzido no .NET Framework 4.8. |
| InternalCall | 4096 | A chamada é interna, ou seja, chama um método que é implementado dentro do common language runtime. |
Comentários
Essa enumeração é usada com o MethodImplAttribute atributo.
Você pode especificar vários MethodImplOptions valores usando o operador OR bit a bit.
Note
O bloqueio na instância ou no tipo, como com o 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.