扩展 ?: 运算符?

Extending the ?: Operator?

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

这是我目前的编码。我正在尝试获取它,所以如果排名超过 65,则显示 "$",如果它超过 2 但不超过 65,则显示 "@",如果两者都不是,则显示 [=13] =].

这是一个在线游戏,这是使用 C# 的客户端。我还是个菜鸟,所以我不太确定你需要什么来解决这个问题。

如你所见,我试图将 then ?: 运算符变成 ``??:: 或其他东西,我尝试使用 , 因为我看到有人 post ,但我想它不适用于 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);