MethodImplOptions Enumeração

Definição

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

Aplica-se a