Partilhar via


MethodImplAttributes Enumeração

Definição

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

AggressiveInlining 256

Especifica que o método deve estar em linha sempre que possível.

AggressiveOptimization 512

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

CodeTypeMask 3

Especifica sinalizadores sobre o tipo de código.

ForwardRef 16

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

IL 0

Especifica que a implementação do método é feita em MSIL (Microsoft Intermediate Language).

InternalCall 4096

Especifica uma chamada interna.

Managed 0

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

ManagedMask 4

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

MaxMethodImplVal 65535

Especifica um valor de verificação de intervalo.

Native 1

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

NoInlining 8

Especifica que o método não pode estar em linha.

NoOptimization 64

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

OPTIL 2

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

PreserveSig 128

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

Runtime 3

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

SecurityMitigations 1024

Este membro é reservado para uso futuro. Introduzido no .NET Framework 4.8.

Synchronized 32

Especifica que o método é single-threaded por meio do corpo. Métodos estáticos (Shared no Visual Basic) são bloqueados no tipo, enquanto métodos de instância são bloqueados na instância. Também é possível usar a instrução Lock do C# ou a instrução SyncLock do Visual Basic para essa finalidade.

Unmanaged 4

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

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

Observação

O bloqueio na instância ou no tipo, como no 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