MethodImplAttributes Énumération

Définition

Spécifie les indicateurs des attributs d'une implémentation de méthode.Specifies flags for the attributes of a method implementation.

Cette énumération a un attribut FlagsAttribute qui permet une combinaison au niveau du bit de ses valeurs membres.

Cette API prend en charge l'infrastructure du produit et n'est pas destinée à être utilisée directement à partir de votre 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
Héritage
MethodImplAttributes
Attributs

Champs

AggressiveInlining 256

Spécifie que la méthode doit être inline dans la mesure du possible.Specifies that the method should be inlined wherever possible.

AggressiveOptimization 512

Spécifie que la méthode doit être optimisée chaque fois que cela est possible.Specifies that the method should be optimized whenever possible.

CodeTypeMask 3

Spécifie les indicateurs sur le type de code.Specifies flags about code type.

ForwardRef 16

Spécifie que la méthode n’est pas définie.Specifies that the method is not defined.

IL 0

Spécifie que l’implémentation de la méthode est écrite en MSIL (Microsoft Intermediate Language).Specifies that the method implementation is in Microsoft intermediate language (MSIL).

InternalCall 4096

Spécifie un appel interne.Specifies an internal call.

Managed 0

Spécifie que la méthode est implémentée en code managé.Specifies that the method is implemented in managed code.

ManagedMask 4

Spécifie si la méthode est implémentée en code managé ou non managé.Specifies whether the method is implemented in managed or unmanaged code.

MaxMethodImplVal 65535

Spécifie une valeur de contrôle de plage.Specifies a range check value.

Native 1

Spécifie que l’implémentation de la méthode est native.Specifies that the method implementation is native.

NoInlining 8

Spécifie que la méthode ne peut pas être inline.Specifies that the method cannot be inlined.

NoOptimization 64

Spécifie que la méthode n’est pas optimisée par le compilateur juste-à-temps (JIT) ni par la génération de code natif (consultez Ngen.exe) lors du débogage des problèmes de génération de code potentiels.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

Spécifie que l’implémentation de la méthode est écrite en OPTIL (Optimized Intermediate Language).Specifies that the method implementation is in Optimized Intermediate Language (OPTIL).

PreserveSig 128

Spécifie que la signature de méthode est exportée exactement telle que déclarée.Specifies that the method signature is exported exactly as declared.

Runtime 3

Spécifie que l’implémentation de la méthode est fournie par le runtime.Specifies that the method implementation is provided by the runtime.

SecurityMitigations 1024

Spécifie que le compilateur JIT doit rechercher des attributs d’atténuation des risques de sécurité, comme le System.Runtime.CompilerServices.SecurityMitigationsAttribute défini par l’utilisateur.Specifies that the JIT compiler should look for security mitigation attributes, such as the user-defined System.Runtime.CompilerServices.SecurityMitigationsAttribute. S’il en trouve, le compilateur JIT applique les atténuations des risques de sécurité associées.If found, the JIT compiler applies any related security mitigations. Disponible à partir de .NET Framework 4.8.Available starting with .NET Framework 4.8.

Synchronized 32

Spécifie que la méthode est à thread unique dans l’ensemble du corps.Specifies that the method is single-threaded through the body. Les méthodes statiques (Shared en Visual Basic) verrouillent le type, tandis que les méthodes d’instance verrouillent l’instance.Static methods (Shared in Visual Basic) lock on the type, whereas instance methods lock on the instance. Vous pouvez également utiliser l’instruction lock en C# ou l’instruction SyncLock en Visual Basic dans ce but.You can also use the C# lock statement or the Visual Basic SyncLock statement for this purpose.

Unmanaged 4

Spécifie que la méthode est implémentée en code non managé.Specifies that the method is implemented in unmanaged code.

Remarques

Les attributs sont combinés à l’aide de l’opération or au niveau du bit comme suit :The attributes are combined using the bitwise OR operation as follows:

Masques d’implémentation du code :Code implementation masks:

  • CodeTypeMask

  • IL

  • Native

  • OPTIL

  • Runtime

Masques managés :Managed masks:

  • ManagedMask

  • Unmanaged

  • Managed

Informations d’implémentation et masques d’interopérabilité :Implementation information and interop masks:

  • ForwardRef

  • PreserveSig

  • InternalCall

  • Synchronized

  • NoInlining

  • NoOptimization

  • MaxMethodImplVal

  • SecurityMitigations (disponible à partir de .NET Framework 4,8.)SecurityMitigations (Available starting with .NET Framework 4.8.)

Notes

Le verrouillage sur l’instance ou sur le type, comme avec l’indicateur Synchronized, n’est pas recommandé pour les types publics, car un code autre que le vôtre peut prendre des verrous sur les types et les instances publics.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. Cela peut entraîner des interblocages ou d’autres problèmes de synchronisation.This might cause deadlocks or other synchronization problems.

S’applique à

Voir aussi