gpt4 book ai didi

c# - 无法将 int 转换为可为 null 的 int

转载 作者:行者123 更新时间:2023-11-30 23:05:25 27 4
gpt4 key购买 nike

在我的 C# 应用程序中,我想将 null 值存储在一个对象中,例如:

if (txtClass8Year.Text == "")
{
distributor.Class8YrPassing = null;
}
else
{
distributor.Class8YrPassing = Convert.ToInt32(txtClass8Year.Text);
}

但是当我试图将整个语句写成一行时它不起作用:

(txtClass8Year.Text == "") ? null : Convert.ToInt32(txtClass8Year.Text);

提前致谢。

帕萨

最佳答案

您需要转换 int结果返回Nullable<int>作为 intint? 类型不同而且它们不能隐式转换,所以我们需要具体说明:

distributor.Class8YrPassing = (txtClass8Year.Text == "") 
? null
: (int?)Convert.ToInt32(txtClass8Year.Text);

或者您可以制作 null转换到 int?那也行:

distributor.Class8YrPassing = (txtClass8Year.Text == "") 
? (int?)null
: Convert.ToInt32(txtClass8Year.Text);

至于三元运算符,我们需要确保在两种情况下都返回相同的类型,否则编译器会给出上述错误。

建议使用 String.IsNullOrEmpty 会更好方法而不是检查 ""文字串:

distributor.Class8YrPassing = String.IsNullOrEmpty(txtClass8Year.Text) || String.IsNullOrWhiteSpace(txtClass8Year.Text)
? null
: (int?)Convert.ToInt32(txtClass8Year.Text);

关于c# - 无法将 int 转换为可为 null 的 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48850504/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com