容器类中的大量变量

Ed *_*mes 1 c#

有没有人对如何在C#中设计容器类有任何建议,其中包含超过30个变量?

我把它写成一组变量,因为有一些不同的类型,例如字符串或DateTime,但是我认为将它们全部存放在对象字典中并将它们的属性名称作为键可能会更好?

干杯,艾德

Mar*_*ell 5

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

如果字段被稀疏地使用(即通常不超过几个使用),那么可能将相关字段推送到多个内部类(每组相关字段) - 即代替:

class Foo {
    string userName;
    int userId;

    string orderReference;
    DateTime orderDate;

    ...
}
Run Code Online (Sandbox Code Playgroud)

就像是:

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;
}
Run Code Online (Sandbox Code Playgroud)

然后,当您必须存储用户数据时,创建一个新的UserInfo; 如果您不需要用户数据,请保留usernull.