我有班级汽车,每个班级都有额外的名单(皮革,腹肌,折叠镜等......)
public Extra
{
public bool Paid {get;set;}
public string Name {get;set;}
public string Code {get;set;}
}
现在,更好的是:
class Car
{
public Extra Leather {get;set;}
public Extra FoldingMirrors {get;set;}
public Extra Abs {get;set;}
}
或更好:
class Car
{
private List<Extra> _listOfExtras=new List<Extra>
public List<Extra> ListOfExtras
{
...
}
}
最糟糕的部分:
我的winforms应用程序脱机工作,每月一个为我发送数据。
我必须在这个应用程序中持有可用的(foreach汽车用户选择额外的)附加列表,所以更好的方式我认为是选项一。
如何在我的应用程序中保存此附加列表?它每月只与webservice连接一次。
答案 0 :(得分:2)
就个人而言(看到这是主观的),我会使用Extra的接口(例如IExtra)。我还会选择在Car类中包含附加列表/字典的第二个“选项”。
如果需要,只需在列表/词典中查找值,就可以像在选项1中那样公开它们。
答案 1 :(得分:1)
附加内容的列表或字典(为了便于访问)会更灵活。
这意味着当添加和/或从汽车中删除额外内容时,您不必修改Car
类,如果每个类都是明确添加的,则必须执行此操作。
有多种方法可以在本地存储列表。你可以序列化到一个文件 - 无论是纯文本还是XML,哪个更好,因为你有为你做序列化的类,或者你可以把它保存在本地数据库中。
答案 2 :(得分:1)
我会将其存储在Dictionary<string, Extra>
中。你不希望同一个额外的东西出现多次......或者至少多付一次: - )
另外,Extra应该是一个接口(或者至少是一个抽象类)..
至于存储,您可以将Car类序列化为XML。