扩展 ?: 运算符?
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);
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);