我有这个代码,其中AddDefSpan是一个扩展方法,它将一个字符串作为参数。我在这里使用:
FormattedString s = new FormattedString()
.AddDefSpan("On the ")
.AddTabSpan("settings")
.AddDefSpan(" screen you set ")
.AddDtlSpan("card appearance visibility")
.AddDefSpan(" to ")
.AddDtlSpan("favorites")
.AddDefSpan(" to ");
if (App.phraseInfo.Favorite == 0)
s.AddDefSpan(" aaa.");
else
s.AddDefSpan(" bbb.");
我想知道的是,如果有某种方法可以将决定(App.phraseInfo.Favorite == 0)纳入.AddDefSpan的单个参数
类似的东西:
s.AddDefSpan(
if (App.phraseInfo.Favorite == 0) " aaa." else " bbb."
);
我意识到我刚写的内容不会起作用,但我想知道是否有办法可以让它起作用?
答案 0 :(得分:6)
您可以使用the ?:
conditional operator:
s.AddDefSpan(App.phraseInfo.Favorite == 0 ? " aaa." : " bbb.");
答案 1 :(得分:1)
您可以使用大多数编程语言中的条件或三元运算符。 (三元,因为它需要3个操作数)
condition
如果first_expression
的计算结果为true,则会计算second_expression
并返回其结果,否则将评估并返回s.AddDefSpan(App.phraseInfo.Favorite == 0 ? " aaa." : " bbb. ");
。
所以在你的情况下,
nb_ones = countSetBit(x)
int64 res = nb_ones == 64 ? -1 : ((1 << nb_ones) - 1);