【问题标题】:Adding single line if statement in string.format在 string.format 中添加单行 if 语句
【发布时间】:2011-12-20 18:40:28
【问题描述】:

能否在 string.format 参数中设置条件。

如果我有

string.format("{0}" , if x = 7 then return "SEVEN" else return "ZERO")

有没有办法做到这一点?

【问题讨论】:

    标签: asp.net .net vb.net


    【解决方案1】:

    在 VB.Net 中使用三元运算符:

    String.Format("{0}", If(x = 7, "SEVEN", "ZERO"))
    

    在 C# 中相同(正如 Brad 已经发布的那样):

    String.Format("{0}", x == 7 ? "SEVEN" : "ZERO")
    

    【讨论】:

    • 您的选择。将一个标记为答案并为其他所有人投票,所以一切都应该没问题。
    【解决方案2】:

    是的。在 VB 2008 及更高版本中,If 运算符可用:

    If(x = 7, "SEVEN", "ZERO")
    

    在VB 2005及更低版本中,需要使用IIf函数

    IIf(x = 7, "SEVEN", "ZERO")
    

    (如果您的实际代码与您发布的完全一致,String.Format 完全是多余的,因为它已经是一个字符串,您不需要对其进行格式化。)

    【讨论】:

      【解决方案3】:
      C#
      String.Format("{0}", x == 7 ? "SEVEN" : "ZERO")
      

      在线ternary operator (?:)

      VB.NET
      String.Format("{0}", IIf(x = 7, "SEVEN", "Zero")) ' Pre-Visual Studio 2008
      String.Format("{0}", If(x = 7, "SEVEN", "Zero"))  ' Visual Studio 2008 and forward
      

      内联ternary method (IIf())(此外,从 VS2008 开始,可以使用简写 If()。)

      【讨论】:

      • 技术上我是第一个回答并参考了IIf()If(),但选择权在你。 :grin: 编码愉快!
      【解决方案4】:

      绝对!使用“三元运算符”(或实际上称为“三元运算符”) - 像这样:

      string.format("{0}", x == 7 ? "SEVEN" : "ZERO");
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-10-20
        • 2019-05-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多