MethodImplOptions Enumeração

Definição

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
MethodImplOptions
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.

Aplica-se a