Me gustaría saber si es posible usar una expresión como variable/parámetro en C#. Me gustaría hacer algo como esto:C#: ¿Hay alguna forma de usar expresiones como variable/parámetro?
int x = 0;
public void g()
{
bool greaterThan = f("x>2");
bool lessThan = f("x<2");
}
public bool f(Expression expression)
{
if(expression)
return true;
else
return false;
}
Esto es lo que no quiero hacer:
int x = 0;
public void g()
{
bool greaterThan = f(x, '<', 2);
}
public bool f(int x, char c, int y)
{
if(c == '<')
return x < y;
if(c == '>')
return x > y;
}
Realmente lo que quiero llegar es una manera de evitar el uso de un interruptor o serie de sentencias if para cada uno de: <> < => = ==! =. ¿Hay una manera de hacerlo?
Editar: Supongamos que la expresión es una cadena, como "x < 2". ¿Hay alguna manera de pasar de la cadena a un predicado sin usar una serie de sentencias if sobre la condición?
Cool. Edité mi pregunta un poco de la siguiente manera: supongamos que la expresión es una cadena, como "x <2". ¿Hay alguna manera de pasar de la cadena a un predicado sin usar una serie de sentencias if sobre el personaje? –
Si es realmente una cadena, no va a haber una respuesta fácil y rápida. Pero si quiere decir que quiere escribir f (x> 2) ;, simplemente haga que f tome un parámetro booleano. – Samuel
Drats, ok. Gracias por la respuesta. –