Je souhaite passer une propriété de classe (ou une propriété getter/setter si nécessaire) à une fonction.Transmission d'une propriété de classe en tant que paramètre
Par exemple, j'ai un tableau d'une classe avec beaucoup de drapeaux booléens.
class Flags
{
public bool a;
public bool b;
public bool c;
public string name;
public Flags(bool a, bool b, bool c, string name)
{
this.a = a;
this.b = b;
this.c = c;
this.name = name;
}
}
Je peux écrire une méthode qui renvoie toutes les instances de drapeaux pour lesquels un drapeau choisi est vrai
public Flags[] getAllWhereAisTrue(Flags[] array)
{
List<Flags> resultList = new List<Flags>();
for (int i = 0; i < array.Length; i++)
{
if (array[i].a == true) // for each Flags for which a is true
{ // add it to the results list
resultList.Add(array[i]);
}
}
return resultList.ToArray(); //return the results list as an array
}
Que dois-je utiliser pour me permettre de passer une propriété de classe en tant que paramètre, de façon pour me sauver d'avoir à écrire cette méthode une fois pour chaque propriété booléenne de Flags (dans cet exemple c'est trois fois, une fois pour a, b et c)? J'essaie d'éviter de donner à Flags un tableau de Booléens dans le but de garder le code résultant facile à lire. J'écris une bibliothèque pour utilisation par des codeurs relativement inexpérimentés.
Merci
(Avec nos excuses si cela est dupe de Passing property as parameter in method, je ne peux pas tout à fait dire si c'est le même problème)
Vous pouvez remplacer toute votre méthode par une requête LINQ triviale. – SLaks
+1 sur la question pour vérifier les doublons en premier. – wllmsaccnt
duplicata possible de [Comment puis-je transmettre une propriété d'une classe en tant que paramètre d'une méthode?] (Http://stackoverflow.com/questions/1178574/how-can-i-pass-a-property-of-a -class-as-a-parameter-of-a-method) – nawfal