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