2012-08-09 49 views
1

我正在嘗試開發一個Windows窗體應用程序,其中用戶將設置未知數量的「子類別」。我怎樣才能自動命名這些新的實例。爲一個類命名未知數量的新實例

在情況下,它可以幫助這裏是我打算

private class Category 
{ 
    int numberOfCategories = 0; 

    Category(int categoryNumber) 
    { 
     numberOfCategories = categoryNumber; 

     for (int i = 0; i <= numberOfCategories; ++i) 
     { 
      SubCategory *automateThis* = new SubCategory(); 
     } 
    } 
} 
private class SubCategory 
{ 

謝謝。

+0

未使用的變量'automateThis'。你在做什麼子類? – 2012-08-09 21:42:47

+0

從前兩個答案中可以看出,您如何計劃在以後訪問您的SubCategories?這將決定要使用的數據結構,不管它是List還是Dictionary。例如,如果用戶將自己命名SubCategories,那麼以名稱作爲鍵的Dictionary可能會有用。 – Jeff 2012-08-09 21:47:26

回答

4

爲什麼要命名它們?它會產生另一個問題 - 你將如何訪問它們? 更好的方法是創建集合List<SubCategory>,在這種情況下,您不必擔心命名對象。

如果您想刪除SubCategories - 您可以考慮使用Dictionary,其中字符串可能是SubCategory的唯一標識符。

+0

好點。好吧,這是有道理的。謝謝! – user1582483 2012-08-09 21:46:26

+0

我很高興我能提供幫助。 – MaciekTalaska 2012-08-09 21:47:55

+0

好的電話@MaciekTalaska – 2012-08-09 22:03:20

0

製作SubCategory對象的list<>並使用i遞增。

0

一個解決方案

private List<SubCategory> _subCategories = new List<SubCategory>(); 
private class Category 
{ 
    int numberOfCategories = 0; 

    Category(int categoryNumber) 
    { 
     numberOfCategories = categoryNumber; 

     for (int i = 0; i <= numberOfCategories; ++i) 
     { 
      _subCategories.Add(new SubCategory()); 
     } 
    } 
} 

,或者如果你想要一個名字,使用字典,你可以使用一個數組,或者一些其他聚合 。這個名字是什麼?

在您發表評論後

什麼時候?你在創建它們之前知道嗎?你是從文件或數據庫加載它們嗎?

爲什麼你需要比具有Name屬性的子類更多的空間?

+0

不管用戶名是什麼。 – user1582483 2012-08-09 21:58:08

+0

擴展答案 – 2012-08-09 22:38:29