MethodImplOptions Énumération

Définition

Spécifie des constantes qui définissent les détails de l’implémentation d’une méthode.

Cette énumération prend en charge une combinaison au niveau du bit de ses valeurs membres.

public enum class MethodImplOptions
[System.Flags]
public enum MethodImplOptions
[System.Flags]
[System.Serializable]
public enum MethodImplOptions
[System.Flags]
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public enum MethodImplOptions
[<System.Flags>]
type MethodImplOptions = 
[<System.Flags>]
[<System.Serializable>]
type MethodImplOptions = 
[<System.Flags>]
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type MethodImplOptions = 
Public Enum MethodImplOptions
Héritage
MethodImplOptions
Attributs

Champs

AggressiveInlining 256

La méthode doit être inline si possible.

L’utilisation inutile de cet attribut peut réduire les performances. L’attribut peut entraîner des limites d’implémentation qui entraînent une génération de code plus lente. Mesurez toujours les performances pour vous assurer qu’il est utile d’appliquer cet attribut.

AggressiveOptimization 512

La méthode contient du code qui doit toujours être optimisé pour les performances.

Il est rarement approprié d’utiliser cet attribut. Les méthodes qui appliquent cet attribut contournent le premier niveau de compilation hiérarchisé et ne bénéficient donc pas des optimisations qui reposent sur la compilation hiérarchisé. Ces optimisations incluent des PGO dynamiques et des optimisations basées sur des classes initialisées. L’utilisation de cet attribut peut également augmenter l’utilisation de la mémoire. Mesurez toujours les performances pour vous assurer qu’il est utile d’appliquer cet attribut.

ForwardRef 16

La méthode est déclarée, mais son implémentation est fournie ailleurs.

InternalCall 4096

L’appel est interne, c’est-à-dire qu’il appelle une méthode implémentée dans le Common Language Runtime.

NoInlining 8

La méthode ne peut pas être inline. L’incorporation est une optimisation par laquelle un appel de méthode est remplacé par le corps de méthode.

NoOptimization 64

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.

PreserveSig 128

La signature de méthode est exportée exactement telle que déclarée.

SecurityMitigations 1024

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

Synchronized 32

La méthode peut être exécutée par un seul thread à la fois. Les méthodes statiques verrouillent le type, tandis que les méthodes d’instance verrouillent l’instance. Un seul thread peut s’exécuter dans toutes les fonctions de l’instance, et un seul thread peut s’exécuter toutes les fonctions statiques d’une classe.

Unmanaged 4

La méthode est implémentée en code non managé.

Remarques

Cette énumération est utilisée avec l’attribut MethodImplAttribute .

Vous pouvez spécifier plusieurs MethodImplOptions valeurs à l’aide de l’opérateur OR au niveau du bit.

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 à