我有一个简单的条件,想用?:关键字实现它,但是编译器不允许我这样做。这是确切的样本

// 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`可能为null。

最佳答案

考虑将其更改为类似

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


当然,如果您想对无效/缺失的输入抛出异常,则可以简单地使用.Parse方法,它将为您抛出一个异常。但是,使用.TryParse将允许您自定义异常的消息或简单地以其他方式处理它,例如重新提示用户。

关于c# - 如何使用 ?字符串关键字,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3078311/

10-14 16:11