MethodImplAttributes MethodImplAttributes MethodImplAttributes MethodImplAttributes Enum

Definição

Especifica os sinalizadores para os atributos de uma implementação do método.Specifies flags for the attributes of a method implementation.

Esta enumeração tem um atributo FlagsAttribute que permite uma combinação bit a bit dos seus valores membros.

Esta API dá suporte à infraestrutura do produto e não deve ser usada diretamente do seu código.

public enum class MethodImplAttributes
[System.Runtime.InteropServices.ComVisible(true)]
[System.Flags]
[System.Serializable]
public enum MethodImplAttributes
type MethodImplAttributes = 
Public Enum MethodImplAttributes
Herança
MethodImplAttributesMethodImplAttributesMethodImplAttributesMethodImplAttributes
Atributos

Campos

AggressiveInlining AggressiveInlining AggressiveInlining AggressiveInlining 256

Especifica que o método deve estar em linha sempre que possível.Specifies that the method should be inlined wherever possible.

AggressiveOptimization AggressiveOptimization AggressiveOptimization AggressiveOptimization 512

Especifica que o método deve ser otimizado sempre que possível.Specifies that the method should be optimized whenever possible.

CodeTypeMask CodeTypeMask CodeTypeMask CodeTypeMask 3

Especifica sinalizadores sobre o tipo de código.Specifies flags about code type.

ForwardRef ForwardRef ForwardRef ForwardRef 16

Especifica que o método não é definido.Specifies that the method is not defined.

IL IL IL IL 0

Especifica que a implementação do método é feita em MSIL (Microsoft Intermediate Language).Specifies that the method implementation is in Microsoft intermediate language (MSIL).

InternalCall InternalCall InternalCall InternalCall 4096

Especifica uma chamada interna.Specifies an internal call.

Managed Managed Managed Managed 0

Especifica que o método é implementado em um código gerenciado.Specifies that the method is implemented in managed code.

ManagedMask ManagedMask ManagedMask ManagedMask 4

Especifica se o método é implementado em um código gerenciado ou não gerenciado.Specifies whether the method is implemented in managed or unmanaged code.

MaxMethodImplVal MaxMethodImplVal MaxMethodImplVal MaxMethodImplVal 65535

Especifica um valor de verificação de intervalo.Specifies a range check value.

Native Native Native Native 1

Especifica que a implementação do método é nativa.Specifies that the method implementation is native.

NoInlining NoInlining NoInlining NoInlining 8

Especifica que o método não pode estar em linha.Specifies that the method cannot be inlined.

NoOptimization NoOptimization NoOptimization 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.Specifies that the method is not optimized by the just-in-time (JIT) compiler or by native code generation (see Ngen.exe) when debugging possible code generation problems.

OPTIL OPTIL OPTIL OPTIL 2

Especifica que a implementação do método é feita em OPTIL (Optimized Intermediate Language).Specifies that the method implementation is in Optimized Intermediate Language (OPTIL).

PreserveSig PreserveSig PreserveSig PreserveSig 128

Especifica que a assinatura do método é exportada exatamente como declarado.Specifies that the method signature is exported exactly as declared.

Runtime Runtime Runtime Runtime 3

Especifica que a implementação do método é fornecida pelo tempo de execução.Specifies that the method implementation is provided by the runtime.

SecurityMitigations SecurityMitigations SecurityMitigations SecurityMitigations 1024

Especifica que o compilador JIT deve procurar atributos de mitigação de segurança, como o System.Runtime.CompilerServices.SecurityMitigationsAttribute definido pelo usuário.Specifies that the JIT compiler should look for security mitigation attributes, such as the user-defined System.Runtime.CompilerServices.SecurityMitigationsAttribute. Se encontrado, o compilador JIT aplicará todas as mitigações de segurança relacionadas.If found, the JIT compiler applies any related security mitigations. Disponível começando com o .NET Framework 4.8.Available starting with .NET Framework 4.8.

Synchronized Synchronized Synchronized Synchronized 32

Especifica que o método é single-threaded por meio do corpo.Specifies that the method is single-threaded through the body. 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.Static methods (Shared in Visual Basic) lock on the type, whereas instance methods lock on the instance. Também é possível usar a instrução Lock do C# ou a instrução SyncLock do Visual Basic para essa finalidade.You can also use the C# lock statement or the Visual Basic SyncLock statement for this purpose.

Unmanaged Unmanaged Unmanaged Unmanaged 4

Especifica que o método é implementado em um código não gerenciado.Specifies that the method is implemented in unmanaged code.

Comentários

Os atributos são combinados usando a operação OR bit a bit da seguinte maneira:The attributes are combined using the bitwise OR operation as follows:

Máscaras de implementação de código:Code implementation masks:

  • CodeTypeMask

  • IL

  • Native

  • OPTIL

  • Runtime

Máscaras gerenciadas:Managed masks:

  • ManagedMask

  • Unmanaged

  • Managed

Informações de implementação e máscaras de interoperabilidade:Implementation information and interop masks:

  • ForwardRef

  • PreserveSig

  • InternalCall

  • Synchronized

  • NoInlining

  • NoOptimization

  • MaxMethodImplVal

  • SecurityMitigations(Disponível a partir do .NET Framework 4,8.)SecurityMitigations (Available starting with .NET Framework 4.8.)

Observação

O bloqueio na instância ou no tipo, como com o Synchronized sinalizador, não é recomendado para tipos públicos, porque um código diferente do seu próprio pode assumir bloqueios em tipos públicos e instâncias.Locking on the instance or on the type, as with the Synchronized flag, is not recommended for public types, because code other than your own can take locks on public types and instances. Isso pode causar deadlocks ou outros problemas de sincronização.This might cause deadlocks or other synchronization problems.

Aplica-se a

Veja também