【发布时间】:2018-12-04 13:30:19
【问题描述】:
我有一个对象,它有一个名为 NameIndicator 的布尔字段(外部合同之一)。在我的代码中,我将布尔值“IsIndicated”设为可为空。
如何检查 null 并仅在非 null 时才赋值?
我目前在下面的代码中遇到编译时错误,因为它显然将可空字段与不可空字段关联
personDetails.Name= new Name_Format()
{
NameSpecified = true,
NameIndicator = contract.IsIndicated
};
【问题讨论】:
-
什么意思?如果它不可为空,那么它将始终为“非空”。
-
如果它“简单”,那有什么问题?到目前为止,您已经将两个布尔字段描述为“不可为空”,并且您正在询问如果有值如何将一个设置为另一个。好吧,不可为空意味着总是有一个值。因此,只需像您已经分配的那样分配它。有什么问题?你在说什么错误?澄清问题。
-
此处:“在我的代码中,我将布尔值“IsIndicated”设为不可为空。”此处:“NameIndicator 不可为空布尔值” i> 你试过阅读你自己的问题吗?
-
如果可为空的值为空,您是否要分配一个值?在这种情况下,您可以使用
??运算符 -- null 合并运算符。 -
@David:虽然这是完全合法的,但更惯用的写作方式是
NameIndicator = contract.IsIndicated ?? false
标签: c# asp.net .net boolean non-nullable