2017-01-17 58 views
2

我想表达作为参数传递给一个函数,如:传递一个表达式作为参数的方法

public string MyFunction(bool expression) //what should I set here as parameter type? 
{ 
    return expression ? "True" : "False"; 
} 

public void InvokeMyFunction() 
{ 
    var myString = MyFunction(10 > 1); 
} 
+0

你有比这更大的用例还是你只是试图返回一个布尔值作为一个字符串? – Sayse

+0

你有没有试过这个来看看结果是什么? – PaulF

+0

@Sayse一个更大的案例,这只是我试图实现的一个例子。 –

回答

8

你可以通过Func<bool>来表示返回布尔值的方法。另外,当您声明该函数时,可以使用lambda语法() =>来表示匿名方法。

string MyFunction(Func<bool> expression) 
{ 
    return expression() ? "True" : "False"; 
} 

void InvokeMyFunction() 
{ 
    var myString = MyFunction(() => 10 > 1); 
} 
+0

这就是我一直在寻找的,谢谢。 –

+0

这传递一个委托实例,其基础方法是使用'=>'箭头(lambda)创建的匿名方法。它实际上并没有传递一个“表达式”。有'Expression >'用于传递表达式的树形表示。但由于这个问题很模糊,我们不知道这在@ NaughtyNinja的应用程序中是否有用。 –

相关问题