2016-04-27 26 views
1

ここまでは私のコードです。私の主な問題は主な方法です。複数の配列のc#配列印刷要素

namespace Lab 
{ 
    class dailyMenu 
    { 
     public static int r; 
     public string day; 
     public int date; 
     public string entree; 
     public double price; 
     public int calories; 


     public static int assignDate = 1; 

     public string Day 
     { 
      get { return day; } 
      set { day = value; } 
     } 
     public int Date 
     { 
      get { return date; } 
      set { date = value; } 
     } 
     public string Entree 
     { 
      get { return entree; } 
      set { entree = value; } 
     } 

     public double Price 
     { 
      get { return price; } 
      set { price = value; } 
     } 

     public int Calories 
     { 
      get { return calories; } 
      set { calories = value; } 
     } 



     private static string[] DayArray = { "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" , "Saturday" , "Sunday" }; 
     private static string[] EntreeArray = { "Pizza", "Spaghetti", "Cheeseburger", "Salad", "Soup", "Sandwich", "Pork", "Roast Chicken", "Kebab", "Steak", "Tacos", "Risotto" }; 

     private static double[] PriceArray = { 2.50, 4.00, 1.50, 1.50, 1.50, 3.00, 3.50, 3.00, 2.50, 4.00, 3.00, 2.00 }; 
     private static int[] CalorieArray = { 300, 600, 650, 270, 190, 680, 250, 300, 180, 250, 350, 600 }; 

     public static void DayofMonth(int date) 
     { 
      date = assignDate; 
      assignDate++; 


       if (date == 5 || date == 12 || date == 19 || date == 26) 
      { 
       assignDate += 2; 
      }//end if 

     }// end DateofMonth 

     public static void DayofWeek (int day) 
     { 
      day = (day % 7) - 1; 
     }// end DayofWeek 

     public void randomItem() 
     { 
      Random rnd = new Random(); 
      r = rnd.Next(0, 12); 

      this.entree = EntreeArray[r]; 
      this.calories = CalorieArray[r]; 
      this.price= PriceArray[r]; 

     }// end randomItem 

     public dailyMenu() 
     { 
     randomItem(); 
     } 

     static void Main(string[] args) 
     { 
      // Populates the 2D array 
      dailyMenu [,] day = new dailyMenu [4, 5]; 
      for (int row = 0; row < 4; row ++) 
      { 
       for (int column = 0; column < 5; column++) 
       { 
        day[row, column] = new dailyMenu(); 
        for (int i; r < Length.day; i++) 
        { 
         Console.WriteLine(r); 
        } 

       }//end forloop column 
      }// end forloop row 
     }//end Main 
    }//end dailyMenu 
}//end namespace 

私は、メインのループのために使用した3つの配列をDailyMenuの新しいインスタンスをプリントアウトしようとしているがしかし、私は取得していますエラーメッセージは、名前の長さは現在のコンテキスト内に存在しない」です。 "

お願いします。ありがとう。

+1

これはかなり明確です...あなたはどこでも 'Length'という変数を定義していません。 –

+1

'Length.day'ではなく' day.Length'を意味すると思いますが、 'r'も洗練されていません。 '私'を意味しましたか?最後に、2次元配列の 'Length'は、1次元だけでなく、配列全体のサイズを与えます。 –

+0

ちょうど私が興味があるから:コードが印刷すると思いますか?あなたはメインクラスの多次元配列が必要ですか?あなたのコードに関する多くの質問:-)ようこそStackOverflowへ、あなたはすぐに新しい質問があるでしょう。 –

答えて

6

day.Lengthではなく、Length.dayを使用する必要があります。 dayは変数です - 配列 - Lengthプロパティを持ちます。

+0

これで解決しました。ありがとう! –

-1

私があなたのコードに見ている最大の問題の1つは、変数の名前を正しく指定することです。クラスには 'day'という名前のStringプロパティがあり、main関数に 'day'という名前のdailyMenu変数も宣言し、DayOfWeek関数には 'day'という名前のintパラメータがあります。混乱を助けないことについて語るあなたのものに適切な名前をつけて、問題が少なくなるでしょう。