将字符串合并为整型
本文关键字:整型 合并 字符串 | 更新日期: 2023-09-27 18:13:13
我想对文本框进行检查,如果为空,则分配零,之后进行一些计算。我知道有一个空合并(?? ?)操作符可以帮助我,但我不确定我是否有可能在文本框为空时分配int。
我试着写这样的东西,但似乎是一个错误。
sdowntime = Convert.ToInt32(txtSDown.Text) ?? 0;
我得到这个
操作符错误98 ??'不能应用于'int'和'int'类型的操作数
是我写错了吗,还是我应该用另一种方法?请指导。非常感谢!
您也可以使用TryParse
方法,如下所示:
int sdowntime;
int.TryParse(txtSDown.Text, out sdowntime);
如果TextBox
为空或包含非数值,则out
参数将被赋值为0。否则,将分配适当解析的值。但是,请注意,您应该始终进行客户端验证,以确保用户不会在数字字段中输入非数字值。
您得到错误,因为int
是一个值类型。由于值类型不支持null
,因此对它们使用空合并运算符是没有意义的。
<罢工>你真正需要做的是检查文本的null
-ness:罢工>
string textToParse = txtDown.Text ?? "0";
罢工编辑:所以我犯了一个错误,有人指出TextBox.Text
永远不能是null
。
:
即使检查为null,如果文本不是null
,而是空(""
或String.Empty
), Convert.ToInt32
也可能失败。您可以使用int.TryParse
。
int sdowntime;
if (!int.TryParse(txtDown.Text ?? "0", out sdowntime))
{
// int.TryParse will assign 0 to sdowntime if it fails
// so watch out for that too.
}