2009-06-10 47 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