Ler em inglês

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

C#
public enum MethodImplAttributes
C#
[System.Flags]
[System.Serializable]
public enum MethodImplAttributes
C#
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public enum MethodImplAttributes
Herança
MethodImplAttributes
Atributos

Campos

Nome Valor Description
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

Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Confira também