MethodImplAttributes Enumeração

Definição

Especifica flags para os atributos de uma implementação de método.

Esta enumeração suporta uma combinação bit-a-bit dos respetivos valores membro.

Esta API suporta a infraestrutura de produtos e não é pressuposta para ser utilizada diretamente a partir 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

Name Valor Description
IL 0

Especifica que a implementação do método está na linguagem intermédia Microsoft (MSIL).

Managed 0

Especifica que o método está implementado em código gerido.

Native 1

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

OPTIL 2

Especifica que a implementação do método está em Linguagem Intermédia Otimizada (OPTIL).

CodeTypeMask 3

Especifica flags sobre o tipo de código.

Runtime 3

Especifica que a implementação do método é fornecida pelo tempo de execução.

ManagedMask 4

Especifica se o método está implementado em código gerido ou não.

Unmanaged 4

Especifica que o método está implementado em código não gerido.

NoInlining 8

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

ForwardRef 16

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

Synchronized 32

Especifica que o método é single-threaded através do corpo. Os métodos estáticos (Shared em Visual Basic) bloqueiam no tipo, enquanto os métodos de instância bloqueiam na instância. Também pode usar a instrução C# lock ou a instrução Visual Basic SyncLock para este fim.

NoOptimization 64

Especifica que o método não é otimizado pelo compilador just-in-time (JIT) nem pela geração nativa de código (ver 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 declarado.

AggressiveInlining 256

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

SecurityMitigations 1024

Este membro está reservado para uso futuro. Foi introduzido no .NET Framework 4.8.

InternalCall 4096

Especifica uma chamada interna.

MaxMethodImplVal 65535

Especifica um valor de verificação de alcance.

Observações

Os atributos são combinados usando a operação bit a bit OR da seguinte forma:

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

  • CodeTypeMask

  • IL

  • Native

  • OPTIL

  • Runtime

Máscaras controladas:

  • ManagedMask

  • Unmanaged

  • Managed

Informação 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, tal como com o Synchronized flag, não é recomendado para tipos públicos, porque código diferente do seu pode aceitar bloqueios em tipos e instâncias públicas. Isto pode causar bloqueios ou outros problemas de sincronização.

Aplica-se a

Ver também