[英]C# shorthand what is wrong with this?
给出此问题的简写If语句:C#
这有什么问题?
int userID;
Int32.TryParse(request.userID, out userID);
userID > 0 ? user = DuoUser.LoadUser(userID): ;
它给出了错误:
only assignment call increment decrement and new object expressions can be used as a statement
据我所知,它应该工作,但是有什么问题吗?
编辑:
我也尝试过:
int userID = 0;
userID > 0 ? user = DuoUser.LoadUser(userID): null;
但是它仍然给出相同的错误。
将最后一行更改为:
user = userID > 0 ? DuoUser.LoadUser(userID) : null ;
错误消息是正确的。 您必须将三元运算符的结果分配给某些对象。
更新
您对问题的编辑仍然存在相同的问题。 您没有将三元表达式的结果分配给任何东西,而是试图在语句中分配。
三元运算符只是说
something = condition ? result if condition is true : otherwise this result if false.
您也可以这样做:
if (userID > 0)
user = DuoUser.LoadUser(userID);
在某些情况下,其中一些可能会更容易阅读。
您可以尝试以下方法:
userID= userID > 0 ? DuoUser.LoadUser(userID): null;
三元运算符测试条件。 它比较两个值。 它产生取决于比较结果的第三个值。 这可以通过if语句或其他构造来完成。
所以你的代码变成
int userID;
Int32.TryParse(request.userID, out userID);
userID = userID > 0 ? user = DuoUser.LoadUser(userID): 0;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.