Если вы хотите присвоить конкретное значение в случае нулевого значения, а в противном случае значение, вы используете оператор объединения нулей .
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()
};
В этом случае он выберет «ложь», так как это значение по умолчанию для логических значений.
Если вы не хотите, чтобы вообще ничего не происходило, если значение равно нулю, вы можете использовать оператор if
:
if (contract.IsIndicated != null)
{
personDetails.Name = new Name_Format()
{
NameSpecified = true,
NameIndicator = contract.IsIndicated.Value
}
};