有没有办法我可以使用字符串向字符串中提供字符串,具体取决于if?

时间:2017-11-09 14:54:54

标签: c#

我有这个代码,其中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."
        );

我意识到我刚写的内容不会起作用,但我想知道是否有办法可以让它起作用?

2 个答案:

答案 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);