MethodImplAttributes Enum

Definition

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

This enumeration has a FlagsAttribute attribute that allows a bitwise combination of its member values.

This API supports the product infrastructure and is not intended to be used directly from your code.

public enum class MethodImplAttributes
public enum MethodImplAttributes
[System.Flags]
[System.Serializable]
public enum MethodImplAttributes
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public enum MethodImplAttributes
type MethodImplAttributes = 
Public Enum MethodImplAttributes
Inheritance
MethodImplAttributes
Attributes

Fields

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 512

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

CodeTypeMask 3

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

ForwardRef 16

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

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 4096

Especifica uma chamada interna.Specifies an internal call.

Managed 0

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

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 65535

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

Native 1

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

NoInlining 8

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

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 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 128

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

Runtime 3

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

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 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 4

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

Remarks

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

Note

O bloqueio na instância ou no tipo, como com o sinalizador de Synchronized, não é recomendado para tipos públicos, porque um código diferente do seu próprio pode assumir bloqueios em instâncias e tipos públicos.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.

Applies to

See also