2017-01-17 61 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的應用程序中是否有用。 –

相關問題