通过以下方式将空值分配给可为空的枚举:?操作者

时间:2018-01-25 16:30:36

标签: c# enums operators

我正在尝试初始化以下对象:

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,则没有问题!提前谢谢。

0 个答案:

没有答案