Maison >développement back-end >C++ >Comment puis-je récupérer efficacement des propriétés avec un attribut spécifique en C# ?
Comment récupérer efficacement des propriétés avec des attributs spécifiques
Considérez la tâche consistant à obtenir une liste de propriétés publiques au sein d'un type spécifié qui possèdent un attribut, appelé MyAttribute. Cet attribut est défini avec AllowMultiple défini sur false, indiquant que chaque propriété peut posséder au plus une instance de l'attribut.
Une approche courante consiste à parcourir les propriétés à l'aide de GetProperties() et à vérifier chaque propriété pour la présence de MonAttribut via GetCustomAttribute[s]. Cependant, cette technique peut s'avérer sous-optimale.
Présentation d'une solution plus efficace
Pour optimiser ce processus de récupération, considérez l'extrait de code suivant :
var props = t.GetProperties().Where( prop => Attribute.IsDefined(prop, typeof(MyAttribute)));
Cette approche améliorée utilise la méthode d'extension Where pour filtrer la liste des propriétés, en sélectionnant uniquement celles pour lesquelles l'attribut MyAttribute est défini. Cette technique est plus efficace car elle évite d'instancier des instances d'attribut pour des propriétés qui ne possèdent pas l'attribut souhaité.
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!