扩展?:操作符

本文关键字:操作符 扩展 | 更新日期: 2023-09-27 18:06:31

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

这是我当前的编码。如果rank大于65,则显示"$",如果大于2但不大于65,则显示"@",如果两者都不是,则显示""

这是一个在线游戏,这是客户端c#。我还是个新手,所以我不太确定你需要什么来解决这个问题。

正如你所看到的,我试图把?:操作符变成一个' ?? ?::或其他东西,我尝试使用,,因为我看到有人发布,但我猜它不适合c#。

扩展?:操作符

可能这个会像你想的那样工作

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

这样做:

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

如果涉及嵌套逻辑,则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);