为了向后兼容,我需要写什么样的setter?

时间:2015-07-07 11:10:27

标签: c# properties

我是OOP的新人。请帮我。我标记了一些属性,如"过时",并创建了2个集合。为了向后兼容,我需要在这些(过时的)属性中编写什么样的setter(我在测试和旧版本的产品中使用此属性)?

[Obsolete("This is for backward compatibility with existing database records. Use Ids instead")]
[DataMember(Name = "Id")]
public Guid Id
{
    get { return Ids.FirstOrDefault(); }
}

[Obsolete("This is for backward compatibility with existing database records. Use Names instead")]
[DataMember(Name = "name")]
public string Name
{
    get { return Names.FirstOrDefault(); }
}

DataMember(Name = "Ids")]
public GuidCollection Ids { get; set; }

DataMember(Name = "names")]
public StringCollection Names { get; set; }

2 个答案:

答案 0 :(得分:1)

这个怎么样,

[Obsolete("This is for backward compatibility with existing database records. Use Names instead")]
[DataMember(Name = "name")]
public string Name
{
    get
    {
        return Names.FirstOrDefault();
    }
    set
    {
        Names = new StringCollection();
        Names.Add(value);
    }
}

希望这会有所帮助......

答案 1 :(得分:0)

你不应该写setter。如果您将属性标记为过时,那么这意味着您建议不再使用它们,但更重要的是,省略setter不会破坏已经 使用属性的任何内容,因为任何遗留代码都没有开始的setter。