在使用新概念時,我碰到Ternary Operator
,它很美。玩了一段時間後,我決定測試它的極限。使用三元運算符的方法調用
但是,當我無法獲得某行代碼進行編譯時,我的樂趣很快就結束了。
int a = 5;
int b = 10;
a == b ? doThis() : doThat()
private void doThis()
{
MessageBox.Show("Did this");
}
private void doThat()
{
MessageBox.Show("Did that");
}
這一行給了我兩個錯誤:
Error 1 Only assignment, call, increment, decrement, and new object expressions can be used as a statement
Error 2 Type of conditional expression cannot be determined because there is no implicit conversion between 'void' and 'void'
我從來沒有使用一個Ternary Operator
決定調用哪個方法,我也不知道,如果它甚至有可能。我只是想方法調用一行If Else Statement
的想法。
我已經做了一些研究,找不到任何人做這個事情的例子,所以我想我可能希望得到一些無法提供的東西。
如果這是可能的,請啓發我在我的錯誤行爲,這是不可能的,有沒有另一種方式?
確保函數doThis和doThat返回int類型的值。 – Chandu 2011-03-30 17:52:30
哎呀,讓我張貼我的方法真的很快。 – 2011-03-30 17:53:33
如果你真的想要一個單行的'If Else',就把它寫成一行:'if(condition)doThis();否則doThat();'承認,三元運算符(如果它的工作方式你認爲)會更短,但簡潔並不總是一件好事。 – 2011-03-30 19:17:21