MethodImplAttributes Énumération
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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
- 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 ( |
| 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 :
CodeTypeMaskILNativeOPTILRuntime
Masques managés :
ManagedMaskUnmanagedManaged
Informations d’implémentation et masques d’interopérabilité :
ForwardRefPreserveSigInternalCallSynchronizedNoInliningNoOptimizationMaxMethodImplValSecurityMitigations(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.