MethodImplAttributes Énumération

Définition

Spécifie des indicateurs pour les attributs d’une implémentation de méthode.

Cette énumération prend en charge 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.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
Héritage
MethodImplAttributes
Attributs

Champs

Nom Valeur Description
IL 0

Spécifie que l’implémentation de la méthode se trouve dans Microsoft langage intermédiaire (MSIL).

Managed 0

Spécifie que la méthode est implémentée dans le code managé.

Native 1

Spécifie que l’implémentation de la méthode est native.

OPTIL 2

Spécifie que l’implémentation de la méthode est en langage intermédiaire optimisé (OPTIL).

CodeTypeMask 3

Spécifie des indicateurs sur le type de code.

Runtime 3

Spécifie que l’implémentation de la méthode est fournie par le runtime.

ManagedMask 4

Spécifie si la méthode est implémentée dans du code managé ou non managé.

Unmanaged 4

Spécifie que la méthode est implémentée dans du code non managé.

NoInlining 8

Spécifie que la méthode ne peut pas être insérée.

ForwardRef 16

Spécifie que la méthode n’est pas définie.

Synchronized 32

Spécifie que la méthode est à thread unique via le corps. Les méthodes statiques (Shared dans Visual Basic) verrouillent sur le type, tandis que les méthodes d’instance verrouillent sur l’instance. Vous pouvez également utiliser l’instruction C# lock ou l’instruction Visual Basic SyncLock à cet effet.

NoOptimization 64

Spécifie que la méthode n’est pas optimisée par le compilateur juste-à-temps (JIT) ou par la génération de code natif (voir Ngen.exe) lors du débogage des problèmes de génération de code possibles.

PreserveSig 128

Spécifie que la signature de méthode est exportée exactement comme déclarée.

AggressiveInlining 256

Spécifie que la méthode doit être insérée dans la mesure du possible.

AggressiveOptimization 512

Spécifie que la méthode doit être optimisée dans la mesure du possible.

SecurityMitigations 1024

Ce membre est réservé à une utilisation ultérieure. Il a été introduit dans .NET Framework 4.8.

InternalCall 4096

Spécifie un appel interne.

Async 8192
MaxMethodImplVal 65535

Spécifie une valeur de vérification de plage.

Remarques

Les attributs sont combinés à l’aide de l’opération OR au niveau du bit comme suit :

Masques d’implémentation de code :

  • CodeTypeMask

  • IL

  • Native

  • OPTIL

  • Runtime

Masques managés :

  • ManagedMask

  • Unmanaged

  • Managed

Informations d’implémentation et masques d’interopérabilité :

  • ForwardRef

  • PreserveSig

  • InternalCall

  • Synchronized

  • NoInlining

  • NoOptimization

  • MaxMethodImplVal

  • SecurityMitigations (disponible à partir de .NET Framework 4.8.)

Note

Le verrouillage sur l’instance ou sur le type, comme avec l’indicateur Synchronized , n’est pas recommandé pour les types publics, car le code autre que votre propre peut prendre des verrous sur des types publics et des instances. Cela peut entraîner des blocages ou d’autres problèmes de synchronisation.

S’applique à

Voir aussi