我在C#中有这一行,其中incoming.icon是自定义模型的属性,而dataItem.Icon是自定义实体的属性。
dataItem.Icon = incoming.icon;
编译器抱怨因为incoming.icon是可空的但是dataItem.Icon不是。这是dataItem' Icon'实体中的属性定义:
public Guid Icon {
get {
return ValidationHelper.GetGuid(GetValue("Icon"), Guid.Empty);
}
set {
SetValue("Icon", value);
}
}
如何使此属性可以为空以修复错误?
答案 0 :(得分:4)
像这样:
public Guid? Icon
{
get
{
return (Guid?)ValidationHelper.GetGuid(GetValue("Icon"), Guid.Empty);
}
set
{
SetValue("Icon", value.GetValueOrDefault());
}
}
答案 1 :(得分:2)
Nullable是您正在寻找的结构。
public Nullable<Guid> Icon
这可以用速记写成:
public Guid? Icon
如果你的设计是你不希望在dataItem.icon上设置null
值,那么你可能想要检查incoming.icon并且只有它的值才能获得它。像这样:
if (incoming.icon.HasValue)
dataItem.Icon = incoming.icon.Value;