如何使此属性可以为空?

时间:2015-05-12 07:55:44

标签: c# entity

我在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);
        }
    }

如何使此属性可以为空以修复错误?

2 个答案:

答案 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;