2012-11-29 86 views
0

我想弄清楚如何用一個對象與多個變量填充數組。我需要的是創建一個數組,而不是一個列表(我試圖學習數組),並用5種不同的波旁威士忌來填充它。是否可以填充數組並將名稱,年齡,酒廠存儲在一個索引中?例如,填充一個數組與多個變量c#

如果我稱爲索引0,它將顯示:

Name: Black Maple Hill 
Distillery: CVI Brands, Inc 
Age: 8 years 

我有這到目前爲止,其中波旁是從威士忌派生類並調用一個方法在主類,以提示用戶進入。

class Bourbon : Whiskey 
{ 
    private Bourbon[] bBottles = new Bourbon[5]; 

    public void bourbon(string name, string distillery, int age) 
    { 
     Name = name; 
     Distillery = distillery; 
     Age = age; 
    } 

    public void PopulateBottles() 
    { 
     Console.WriteLine("Please enter the information for 5 bourbons:"); 
     for (int runs = 0; runs < 5; runs ++) 
     { 

     } 
    } 
} 
+0

老兄,你需要學習的第一件事就是用清晰的方式表達你的想法!分部分問題。爲那些願意回答的人提供一些背景。這聞起來像功課。 – alxx

+0

你有錯誤的直覺。我的作業是創建一個DVD租賃計劃。這只是我試圖理解數組。 這個問題似乎明確說明我在找什麼。語法相當精確,我所做的要點是以邏輯順序的方式引入的。 也許我不會用語義上合理的方式表達自己,儘管我正在嘗試學習C#的語義。但請允許我儘可能清楚: 我想知道是否可以在陣列中存儲波旁對象。 – bbbbbbbbbb

+0

這些線應該做什麼? Name = Console.ReadLine(); bBottles [runs] =值 – ryadavilli

回答

0

在您的代碼中,您尚未定義在for循環中使用的value變量。你可以創建類的新實例,然後將它們存儲陣列內:

public void PopulateBottles() 
{ 
    Console.WriteLine("Please enter the information for 5 bourbons:"); 
    for (int runs = 0; runs < 5; runs ++) 
    { 
     Console.WriteLine("Name:"); 
     var name = Console.ReadLine(); 
     Console.WriteLine("Distillery:"); 
     var distillery = Console.ReadLine(); 
     Console.WriteLine("Age:"); 
     var age = int.Parse(Console.ReadLine()); 
     var bourbon = new Bourbon(name, distillery, age); 
     bBottles[runs] = bourbon; 
    } 
} 

另外,還要確保你已經正確定義的Bourbon類的構造函數:

public Bourbon(string name, string distillery, int age) 
{ 
    Name = name; 
    Distillery = distillery; 
    Age = age; 
} 
+0

非常感謝。 – bbbbbbbbbb

0

@Jonathan。是的,根據我的解釋,這是可能的。你可以嘗試使用索引器。

Class Bourbon : Whiskey { 
public Bourbon this[int index] 
{ 
    get { 
     return bBottles[index]; 
    } 
    set { 
     bBottles[index] = value; 
    } 
    } 
} 
+0

這個句柄如何創建OP代碼中缺少的新對象? – ryadavilli

+0

@ryadavilli。這是發佈的部分代碼。一個人必須編寫一個解析器並構造一個Bourbon類型的對象。解析器,從控制檯讀取。 – Karthik

+0

我得到你所做的。我問了這個問題,以獲得更完整的答案。有代碼和解釋的自我解釋答案是首選。 – ryadavilli

0

檢查此需要創建屬性和一個構造函數來實現您的要求。

class Bourbon 
    { 

     private Bourbon[] bBottles = new Bourbon[5]; 

     private string name; 

     public string Name 
     { 
      get { return name; } 
      set { name = value; } 
     } 
     private string distillery; 

     public string Distillery 
     { 
      get { return distillery; } 
      set { distillery = value; } 
     } 
     private int age; 

     public int Age 
     { 
      get { return age; } 
      set { age = value; } 
     } 

     public Bourbon(string name, string distillery, int age) 
     { 
      Name = name; 
      Distillery = distillery; 
      Age = age; 
     } 

     public void PopulateBottles() 
     { 
      Console.WriteLine("Please enter the information for 5 bourbons:"); 
      for (int runs = 0; runs < 5; runs++) 
      { 
       Console.WriteLine("Name:"); 
       var name = Console.ReadLine(); 
       Console.WriteLine("Distillery:"); 
       var distillery = Console.ReadLine(); 
       Console.WriteLine("Age:"); 
       var age = int.Parse(Console.ReadLine()); 
       var bourbon = new Bourbon(name, distillery, age); 
       bBottles[runs] = bourbon; 
      } 
     } 
    }