将字符串合并为整型

本文关键字:整型 合并 字符串 | 更新日期: 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.
}