2009-06-10 53 views
1

有没有人有任何关于如何去设计容器类的建议,在C#中有超过30个变量的容器类?容器类中的大量变量

我已经写出它作为一组变量,因为有几个不同的类型,例如字符串或日期时间,但我想它可能会更好地将它们全部放置在具有其属性的对象字典中名称作为键?

Cheers,Ed

回答

5

如果所有的字段都是必需的,那么它们是必需的。使用字典可能会增加开销并导致额外的内存成本。字典方法在一些特定的场景中可能是有用的,例如属性包实现和稀疏事件处理程序(因为事件是最明显的稀疏数据)。

如果字段稀疏地使用(即通常大于几不都在使用中),那么也许推相关领域为多个内部类(每相关领域的组) - 的即代替:

class Foo { 
    string userName; 
    int userId; 

    string orderReference; 
    DateTime orderDate; 

    ... 
} 

类似:

class Foo { 
    class UserInfo { // move this outside if it makes sense to re-use it 
      public int Name {get;set;} 
      public int Id {get;set;} 
    } 
    UserInfo user; 

    class OrderInfo { // move this outside if it makes sense to re-use it 
     public string Reference {get;set;} 
     public string Date {get;set;} 
    } 
    OrderInfo order; 
} 

然后,当你有来存储用户数据,创建一个新的UserInfo;如果您不需要用户数据,请将user留空。

+0

这实际上是我已经在驾驶的实施,所以谢谢你的良心!然而,30多个变量已经在基础类中,然后我们拆分了REST(是的,这个构建是疯了,这不是我的工作,以纠正这种情况,认为易趣,但一些专业产品)分为单独的子类,每个都有另外15个属性!没有办法让它变得漂亮或美丽,所以我将继续使用多种属性方法! – 2009-06-10 13:27:32