我是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; }
答案 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。