Maison >développement back-end >C++ >Comment extraire des constantes d'un type à l'aide de la réflexion C# ?
Reflection fournit un moyen puissant d'inspecter les types au moment de l'exécution. Cela vous permet de récupérer des informations sur les propriétés, les méthodes et même ses constantes d'un type.
Pour obtenir toutes les constantes d'un type à l'aide de la réflexion, vous pouvez utiliser la méthode GetFields avec des indicateurs de liaison spécifiques :
BindingFlags.Public | BindingFlags.Static | BindingFlags.FlattenHierarchy
Ces indicateurs garantissent que vous récupérez tous les champs publics statiques déclarés au type actuel ou à l'un de ses types de base.
Après avoir récupéré le tableau d'objets FieldInfo, vous pouvez les filtrer pour inclure uniquement des constantes en vérifiant les indicateurs IsLiteral et IsInitOnly :
if(fi.IsLiteral && !fi.IsInitOnly)
L'indicateur IsLiteral indique que la valeur du champ est attribuée au moment de la compilation, tandis que l'indicateur IsInitOnly indique que le champ ne peut être initialisé que dans le constructeur. Pour les constantes, ces deux indicateurs doivent être vrais.
En utilisant cette approche, vous pouvez extraire efficacement toutes les constantes de n'importe quel type en utilisant la réflexion :
private List<FieldInfo> GetConstants(Type type) { return type.GetFields(BindingFlags.Public | BindingFlags.Static | BindingFlags.FlattenHierarchy) .Where(fi => fi.IsLiteral && !fi.IsInitOnly).ToList(); }
Cette méthode renvoie une liste d'objets FieldInfo qui représentent les constantes déclarées dans le type spécifié.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!