我正在尝试初始化以下对象:
return new ObjectNaturalPerson
{
Initials = entity.Initials,
FirstName = entity.FirstName,
LastName = entity.LastName,
Gender = GetGender(entity.Gender),
BirthPlace = entity.Birthplace
};
到目前为止,代码没有问题。 但请关注这一行:
Gender = GetGender(entity.Gender)
我想要实现的是我想将性别设置为 null 或 GetGender(entity.Gender),具体取决于 entity.Gender ,这是一个字符串。 此外,性别是一个可以为空的属性,实际上命名为性别,属于性别类型,它是一个枚举。
public Gender? Gender { get; set; }
我不明白的是,如果在对象初始化期间我尝试直接设置 Gender = null ,则没有问题!相反,如果尝试以下列方式使用运算符:?,则会收到错误:
Gender = entity.Gender.IsNullOrEmpty() ? null : GetGender(entity.Gender)
错误是:无法确定条件表达式的类型,因为Null和Gender之间没有隐式转换。但是,如果我将Gender直接设置为null,则没有问题!提前谢谢。