Idioma

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

Especifica que o método usa a execução assíncrona gerenciada por runtime, em que a suspensão e a retomada são tratadas pelo runtime e não por um computador de estado assíncrono gerado pelo compilador.

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