2016-04-27 3 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 

Я пытаюсь напечатать новый экземпляр DailyMenu с тремя массивами, используя для цикла в Main, однако сообщение об ошибке я получаю «Имя Длина не существует в текущем контексте. "

Любая помощь, пожалуйста? Благодарю.

+1

Это довольно ясно ... вы не указали переменную под названием «Длина» в любом месте. –

+1

Я думаю, вы имеете в виду 'day.Length' вместо' Length.day', но вы также не уточнили 'r'. Вы имели в виду 'i'? Наконец, 'Length' для 2-D массива даст вам размер всего массива, а не только одно измерение. –

+0

Просто потому, что меня интересует: что вы думаете, что этот код будет печатать? И вы уверены, что вам нужен многомерный массив вашего основного класса? Так много вопросов о вашем коде :-) Добро пожаловать в StackOverflow, я думаю, у вас скоро появятся новые вопросы. –

ответ

6

Вам необходимо использовать day.Length не Length.day. day - ваша переменная - массив - и она имеет свойство Length.

+0

Да, это исправлено. Благодаря! –

-1

Одна из самых больших проблем, которые я вижу с вашим кодом, связана с правильным указанием ваших переменных. У вашего класса есть свойство String с именем «день», вы также объявляете переменную dailyMenu с именем «день» в своей основной функции, и у вас также есть параметр int с именем «день» в функции DayOfWeek. Поговорите о том, чтобы не помогать в замешательстве. Назовите свои вещи правильно, и у вас будет меньше проблем.

Смежные вопросы