MethodImplAttributes Enumeração

Definição

Especifica sinalizadores para os atributos de uma implementação de 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
MethodImplAttributes
Atributos

Campos

Nome Valor Description
IL 0

Especifica que a implementação do método está em Microsoft MSIL (linguagem intermediária).

Managed 0

Especifica que o método é implementado no código gerenciado.

Native 1

Especifica que a implementação do método é nativa.

OPTIL 2

Especifica que a implementação do método está em OPTIL (Optimized Intermediate Language).

CodeTypeMask 3

Especifica sinalizadores sobre o tipo de código.

Runtime 3

Especifica que a implementação do método é fornecida pelo runtime.

ManagedMask 4

Especifica se o método é implementado em código gerenciado ou não gerenciado.

Unmanaged 4

Especifica que o método é implementado em código não gerenciado.

NoInlining 8

Especifica que o método não pode ser sublinhado.

ForwardRef 16

Especifica que o método não está definido.

Synchronized 32

Especifica que o método é encadeado por um único thread pelo corpo. Métodos estáticos (Shared em Visual Basic) bloqueiam o tipo, enquanto os métodos de instância bloqueiam a instância. Você também pode usar a instrução C# lock ou a instrução Visual Basic SyncLock para essa finalidade.

NoOptimization 64

Especifica que o método não é otimizado pelo compilador JIT (just-in-time) ou pela geração de código nativo (consulte Ngen.exe) ao depurar possíveis problemas de geração de código.

PreserveSig 128

Especifica que a assinatura do método é exportada exatamente como declarada.

AggressiveInlining 256

Especifica que o método deve ser embutido sempre que possível.

AggressiveOptimization 512

Especifica que o método deve ser otimizado sempre que possível.

SecurityMitigations 1024

Esse membro é reservado para uso futuro. Ele foi introduzido no .NET Framework 4.8.

InternalCall 4096

Especifica uma chamada interna.

Async 8192
MaxMethodImplVal 65535

Especifica um valor de verificação de intervalo.

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

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

Confira também