为了向后兼容,我需要写什么样的setter ?
本文关键字:什么样 setter | 更新日期: 2023-09-27 18:01:34
我是OOP的新手。请帮帮我。我标记了一些属性,如"obsolete",并创建了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; }
这个怎么样,
[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);
}
}
你不应该写setter。如果您将属性标记为过时的,那么这意味着您建议以后不再使用它们,但更重要的是,省略setter不会破坏任何已经使用属性的,因为任何遗留代码都没有开始使用setter。