属性设置器中的条件如何使用

时间:2019-12-13 14:14:58

标签: c#

如果将空值分配给SettingCode,我希望将该值设置为“”或空字符串。

[Required(AllowEmptyStrings = true)]
[StringLength(20)]
public string SettingCode { get; set; } 

3 个答案:

答案 0 :(得分:3)

我猜您正在使用OR / M来提供此属性。因此,在数据库上有一个可为空的字段,而您只是不想在代码中使用null。这通常不是一个好主意,因为在您保留数据时可能会导致其他问题。 但是,如果是这种情况,并且要执行此操作,请使用备用字段:

string settingCode;

[Required(AllowEmptyStrings = true)]
[StringLength(20)]
public string SettingCode { get {return settingCode??"";} set { settingCode=value; } } 

答案 1 :(得分:1)

这就像声明一个局部变量来保存值并在set中实现一些代码一样简单:

private string _settingCode;

[Required(AllowEmptyStrings = true)]
[StringLength(20)]
public string SettingCode
{
    get { return _settingCode; }
    set
    {
        _settingCode = value == null ? string.Empty : value;
    }
} 

答案 2 :(得分:1)

我会使用属性+字段代替自动实现的属性来实现这一点:

private string _settingCode;

[Required(AllowEmptyStrings = true)]
[StringLength(20)]
public string SettingCode
{
    get { return _settingCode; }
    set { _settingCode = value?? string.Empty; }
}