![](/img/trans.png)
[英]The null value cannot be assigned to a member with type System.Boolean which is a non-nullable value type
[英]Assign non nullable value in boolean only if its non null
我有一個對象,該對象具有一個名為NameIndicator的布爾字段(外部合同1)。 在我的代碼中,我將布爾值“ IsIndicated”設置為可為空。
如何檢查null並僅在非null時才賦值?
我目前收到以下代碼的編譯時錯誤,顯然是將nullable設置為non nullable
personDetails.Name= new Name_Format()
{
NameSpecified = true,
NameIndicator = contract.IsIndicated
};
如果要為null分配一個特定的值,否則要分配一個值,則可以使用null合並運算符 。
personDetails.Name= new Name_Format()
{
NameSpecified = true,
NameIndicator = contract.IsIndicated ?? true
};
語義與
personDetails.Name = new Name_Format()
{
NameSpecified = true,
NameIndicator = contract.IsIndicated == null ? true : contract.IsIndicated.Value
};
除了它當然只調用IsIndicated
一次。
如果您希望運行時為您選擇默認值,則可以
personDetails.Name = new Name_Format()
{
NameSpecified = true,
NameIndicator = contract.IsIndicated.GetValueOrDefault()
};
在這種情況下,它將選擇“ false”,因為這是布爾值的默認值。
如果您不希望任何值為null的事件,那么可以使用if
語句:
if (contract.IsIndicated != null)
{
personDetails.Name = new Name_Format()
{
NameSpecified = true,
NameIndicator = contract.IsIndicated.Value
}
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.