Ich würde gerne eine Klassenproperty (oder einen Getter/Setter, wenn nötig) als Referenz an eine Funktion übergeben.
Zum Beispiel habe ich ein Array einer Klasse mit vielen booleschen Flags.
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;
}
}
Ich kann eine Methode schreiben, die alle Instanzen von Flags zurückgibt, bei denen ein ausgewähltes Flag wahr ist
public Flags[] getAllWhereAisTrue(Flags[] array)
{
List resultList = new List();
for (int i = 0; i < array.Length; i++)
{
if (array[i].a == true) // für jedes Flags, bei dem a wahr ist
{ // füge es zur Ergebnisliste hinzu
resultList.Add(array[i]);
}
}
return resultList.ToArray(); // gib die Ergebnisliste als Array zurück
}
Was würde ich verwenden, um es mir zu ermöglichen, eine Klassenproperty als Parameter zu übergeben, um mich davon abzuhalten, diese Methode für jede boolesche Eigenschaft von Flags zu schreiben (in diesem Beispiel ist das dreimal, einmal für a, b und c)?
Ich versuche zu vermeiden, Flags ein Array von Booleans zu geben, um den resultierenden Code leicht lesbar zu halten. Ich schreibe eine Bibliothek für relativ unerfahrene Programmierer.
Danke
(Mit Entschuldigung, falls dies ein Duplikat von Passing property as parameter in method ist, ich kann nicht ganz feststellen, ob es dasselbe Problem ist)