Me gustaría pasar una referencia de propiedad de clase (o un getter/setter si es necesario) a una función.Pasar una propiedad de clase como un parámetro
Por ejemplo, tengo una matriz de una clase con muchos indicadores booleanos.
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;
}
}
puedo escribir un método que devuelve todas las instancias de Banderas para el que una bandera elegido es cierto
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
}
¿Qué iba a utilizar para permitirme pasar una propiedad de clase como un parámetro, con el fin para evitar que tenga que escribir este método una vez por cada propiedad booleana de Flags (en este ejemplo, eso es tres veces, una vez para a, byc)
Estoy tratando de evitar dar a los indicadores una variedad de booleanos en un intento de mantener el código resultante fácil de leer. Estoy escribiendo una biblioteca para uso de codificadores relativamente inexpertos.
Gracias
(Con perdón si esto es una víctima de Passing property as parameter in method, yo no puedo decir si es la misma edición)
Puede reemplazar todo su método con una consulta trivial LINQ. – SLaks
+1 en la pregunta para buscar primero los duplicados. – wllmsaccnt
posible duplicado de [¿Cómo puedo pasar una propiedad de una clase como parámetro de un método?] (Http://stackoverflow.com/questions/1178574/how-can-i-pass-a-property-of-a -class-as-a-parameter-of-a-method) – nawfal