MethodImplOptions 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 constantes que definem os detalhes de como um método é implementado.
Esta enumeração suporta uma combinação bit-a-bit dos respetivos valores 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
| Name | Valor | Description |
|---|---|---|
| Unmanaged | 4 | O método é implementado em código não gerido. |
| NoInlining | 8 | O método não pode ser em linha. O 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 a sua implementação é fornecida noutro local. |
| Synchronized | 32 | O método pode ser executado por apenas um thread de cada vez. Os métodos estáticos bloqueiam no tipo, enquanto os métodos de instância bloqueiam na 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) nem pela geração nativa de código (ver 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 inlineado, se possível. O uso desnecessário deste atributo pode reduzir o desempenho. O atributo pode causar o surgimento de limites de implementação que resultarão em código gerado mais lentamente. Meça sempre o desempenho para garantir que é útil aplicar esta característica. |
| SecurityMitigations | 1024 | Este membro está reservado para uso futuro. Foi introduzido no .NET Framework 4.8. |
| InternalCall | 4096 | A chamada é interna, ou seja, chama um método implementado dentro do runtime da linguagem comum. |
Observações
Esta enumeração é usada com o MethodImplAttribute atributo.
Pode especificar múltiplos MethodImplOptions valores usando o operador OR bit a bit.
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.