6
A
回答
45
2
帕特里克·霍夫曼的answer是完美的OP的情況下,因爲它是非常專門返回真/假。對於更一般的情況下,如果是去方式:
User.UserRoleID == 9 ? doOneStuff() : doTheOtherStuff()
它可以被等同輕易取代的if/else
if(User.UserRoleID == 9){
doOneStuff();
}else{
doTheOtherStuff();
}
在分配和回報的情況下,你需要表達的左半部分在兩個分支:
int foo = (User.UserRoleID == 9) ? doOneStuff() : doTheOtherStuff()
if(User.UserRoleID == 9){
int foo = doOneStuff();
}else{
int foo = doTheOtherStuff();
}
在這種三元的情況下,作爲一個參數,你需要明確地將其解壓縮到一個變量:
int result = myFunction(User.UserRoleID == 9 ? 4 : 5)
int parameter;
if(User.UserRoleID == 9){
parameter = 4;
}else{
parameter = 5;
}
result = myFunction(parameter);
0
You should use an if. Seriously;但如果由於任何原因你不能自己使用該農民如果聲明(?),你可能使用開關。
return (User.UserRoleID == 9) ? false : true
switch(User.UserRoleID == 9){
case true:
return true;
case false:
return false;
default:
//return... wait, what?
throw new Exception("Boolean math broken. Please, restart the universe");
}
對於一個更一般的情況:
return (User.UserRoleID == 9) ? doOneThing(): doTheOtherThing();
switch(User.UserRoleID == 9){
case true:
return doOneThing();
case false:
return doTheOtherThing();
}
有些人不喜歡這種開關方式。好了,你也可以嘗試這另一個:
try {
bool result = User.UserRoleID == 9;
throw new Activator.CreateInstance(result.ToString() + "Exception");
} catch (TrueException e){
return doOneThing();
}catch(FalseException e){
return doTheOtherThing();
}
注:請不要做任何這一點。你可以做到這一點,但它是可怕的,如果他們看到這個代碼,你會被鄙視(可能被解僱)。葉被警告
0
如何只到位true
或false
文字的使用User.UserRoleID == 9
?如果這最終會在整個代碼中重複出現,那麼這並不理想,但是如果您只需要一次或兩次...
相關問題
- 1. 有什麼辦法可以調用PHP運算符嗎?
- 2. 有什麼辦法可以避免在Oracle中觸發級聯?
- 3. 有什麼辦法可以避免粘貼文本框?
- 4. 有什麼辦法可以避免BigQuery的表限制爲1000?
- 5. 有什麼辦法可以避免這段代碼?
- 6. 有什麼辦法可以避免靜態內存區溢出?
- 7. 有什麼辦法可以避免子查詢?
- 8. 爲什麼我可以使用If Else語法而不是三元運算符?
- 9. 有沒有什麼辦法可以避免使用JSDoc「@method」註釋
- 10. 有什麼辦法避免蟒蛇
- 11. 三元運算符用法?
- 12. 三元運算符用法
- 13. &&使用三元運算符
- 14. 使用三元運算符
- 15. 三元運算符;這個語法有什麼問題?
- 16. 有沒有辦法避免使用`end =`
- 17. 有沒有什麼辦法可以避免在java中嵌套的「for」循環
- 18. 有沒有什麼辦法可以避免使用泛型參數調用方法時的類型轉換?
- 19. 我可以在className的div中使用三元運算符嗎?
- 20. 三元運算符的使用,以增加可變
- 21. 可以在C++流中使用三元運算符嗎?
- 22. 我可以使用三元運算符,而不是while循環
- 23. 更新項目時有什麼辦法可以避免listView閃爍?
- 24. 有什麼辦法可以避免JavaFX分頁控制中的頁面更改?
- 25. 爲什麼三元運算符不能使用重定向
- 26. 爲什麼break不能和三元運算符一起使用?
- 27. 嵌套三元運算符可接受的格式是什麼?
- 28. 三元運算符
- 29. 有什麼方法可以避免在C++中使用非法指針?
- 30. 我可以使用三元運算符來設置通用方法參數嗎?
代碼的上下文是什麼?這是一個返回聲明?還是別的被分配了這個真/假值的東西? –
'if'有什麼問題? – Jodrell
您可以用無代碼替換您的代碼行,它不會執行任何操作。 – Jodrell