扩展?:运算符?

时间:2015-08-06 03:27:52

标签: c# operators

 Name = (src.Client.Account.Rank > 65 ?  src.Client.Account.Rank > 2  ? "$" : "@" : "") + src.Name,

这是我目前的编码。我试图得到它,如果排名超过65显示"$",如果它超过2但不超过65,则显示"@",如果它不是,则显示{{1 }}

这是针对在线游戏,这是C#的客户端。我还是个菜鸟,所以我不确定你需要解决的问题。

正如你所看到的那样,我试图将""运算符转换为``?? ::或者其他东西,我尝试使用?:,因为我看到有人发布了这个,但我猜它没有不适用于C#。

3 个答案:

答案 0 :(得分:1)

可能这个会按你的意愿运作

Name = ((src.Client.Account.Rank > 65) ? "$" : ((src.Client.Account.Rank > 2) ? "@" : "")) + src.Name,

答案 1 :(得分:1)

这样做:

Name = (src.Client.Account.Rank > 65 
       ?  "$" : 
       (src.Client.Account.Rank > 2  ? "@" : "")) + src.Name;

答案 2 :(得分:0)

如果涉及嵌套逻辑,if语句可以说比三元运算符更具可读性:

string prefix = null;
if (src.Client.Account.Rank > 65)
    prefix = "$";
else if (src.Client.Account.Rank > 2)
    prefix = "@";

Name = string.Concat(prefix, src.Name);