我有一个简单的条件,想用?:
关键字实现它,但是编译器不允许我这样做。这是确切的样本
// 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/