代码之家  ›  专栏  ›  技术社区  ›  Nasser Hadjloo

如何使用?字符串的关键字

  •  1
  • Nasser Hadjloo  · 技术社区  · 14 年前

    我有一个简单的条件,希望用 ?: 但编译器不允许我使用关键字。这是准确的样品

    // in asp page decleration
    <ajaxtoolkit:FilteredTextBoxExtender id="ftbeNumeric" runat="server" TargetControlID="textbox1" FilterType="Numbers" />
    <asp:TextBox ID="textbox1" runat="server" />
    
    // in code behind 
    decimal x = textbox1.Text != string.IsNullOrEmpty ? Convert.ToDecimal(textbox1.Text) : 0;
    

    我也尝试这个

    // in code behind 
    decimal x = Convert.ToDecimal(textbox1.Text) != 0 ? Convert.ToDecimal(textbox1.Text) : 0;
    

    这些样本面位有误。

    如何定义 ?: 关键字?并注意到 textbox .text`可以为空。

    3 回复  |  直到 14 年前
        1
  •  6
  •   Anthony Pegram    14 年前

    考虑把它改成

    decimal x;
    if (!decimal.TryParse(textbox1.Text, out x))
    {
        // throw an exception?
        // set it to some default value?
    }
    

    当然,如果您想对一个无效/丢失的输入抛出一个异常,只需使用.parse方法,它就会为您抛出一个异常。但是,使用.typarse将允许您自定义异常的消息或简单地以另一种方式处理它,例如重新格式化用户。

        2
  •  3
  •   Oak    14 年前

    String.IsNullOrEmpty 是方法,而不是字段。所以正确的用法是 String.IsNullOrEmpty(textbox1.Text) .

        3
  •  0
  •   Nasser Hadjloo    14 年前

    我用这个声明把它修好了

    string.IsNullOrEmpty(textbox1.Text) ? 0 : Convert.ToDecimal(textbox1.Text);