Partager via


MethodImplAttributes Énumération

Définition

Spécifie les indicateurs des 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

AggressiveInlining 256

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

AggressiveOptimization 512

Spécifie que la méthode doit être optimisée chaque fois que cela est possible.

CodeTypeMask 3

Spécifie les indicateurs sur le type de code.

ForwardRef 16

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

IL 0

Spécifie que l’implémentation de la méthode est écrite en MSIL (Microsoft Intermediate Language).

InternalCall 4096

Spécifie un appel interne.

Managed 0

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

ManagedMask 4

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

MaxMethodImplVal 65535

Spécifie une valeur de contrôle de plage.

Native 1

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

NoInlining 8

Spécifie que la méthode ne peut pas être inline.

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.

OPTIL 2

Spécifie que l’implémentation de la méthode est écrite en OPTIL (Optimized Intermediate Language).

PreserveSig 128

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

Runtime 3

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

SecurityMitigations 1024

Ce membre est réservé pour un usage ultérieur. Il a été introduit dans .NET Framework 4.8.

Synchronized 32

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

Unmanaged 4

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

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

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 instances publics. Cela peut entraîner des interblocages ou d’autres problèmes de synchronisation.

S’applique à

Voir aussi