2017-02-20 1 views
-1

Я новичок в C#, и я не понимаю, почему это не работает. Я получаю Error subject() в основном, как указано ниже.как вызвать метод массив строк в main в C#

Мой код выглядит следующим образом:

class Program 
    { 
     static void Main(string[] args) 
     {string sub; 
      // string brd; 
      brd = board(); 
      sub = subjects(); // Error 
      //Console.WriteLine(brd); 
      Console.WriteLine(sub); 
      Console.ReadLine(); 
     } 
     public static string[] subjects() 
     { 
     Console.WriteLine("Please Enter How many Subject Do you Want to input"); 
     int limit = System.Convert.ToInt32(Console.ReadLine()); 
      string[] Subjects = new string[limit]; 
      int[] index = new int[limit]; 
      for (limit = 0; limit <= index.Length; limit++) 
      { 
       Console.WriteLine("Please Enter Subject Name " + limit + 1); 
       Subjects[limit] = Console.ReadLine(); 
      } 
      return Subjects; 
     } 
    } 
+0

какая ошибка вы получаете? – kritikaTalwar

+0

При отправке вопроса вы должны отформатировать код для удобного чтения (соблюдение соглашений C#), вы должны дать точное сообщение об ошибке из компилятора определенным образом, и вы должны указать его в коде. –

ответ

1

Пожалуйста, обратитесь к/**/комментарий

class Program 
{ 
    static void Main(string[] args) 
    { 
     string sub; /*1. Remove this line*/ 
     // string brd; 
     brd = board(); 
     sub = subjects(); /*2. string[] sub = subjects();*/ 
     //Console.WriteLine(brd); 
     Console.WriteLine(sub); 
     Console.ReadLine(); 
    } 
    public static string[] subjects() 
    { 
     Console.WriteLine("Please Enter How many Subject Do you Want to input"); 
     int limit = System.Convert.ToInt32(Console.ReadLine()); 
     string[] Subjects = new string[limit]; 
     int[] index = new int[limit]; /*3. Remove this line -> Redundant*/ 
     /*4. Change variable `limit` to `i`*/ 
     for (int i = 0; i <= limit; i++) 
     { 
      Console.WriteLine("Please Enter Subject Name " + i + 1); 
      Subjects[i] = Console.ReadLine(); 
     } 
     return Subjects; 
    } 
} 
+0

Надеюсь, что это плохой подход к ответу, добавьте правильный ответ в код и дайте объяснения. ваш код по-прежнему показывает ошибки, упомянутые в вопросе. –

3

Попробуйте это:

string[] sub = subjects(); 

Вместо этого:

string sub; 
sub = subjects(); 

Поскольку вы получаете строку массива и передавая его нормальная строка.

1

Вы определяете sub в виде строки (string sub), но метод subjects is returning a string array. Sois not able to hold the return value from that method. you have to change the return type of суб суб from string to строка [] `. Это означает, что декларация должна быть такой:

string[] sub = subjects(); 

Или гораздо проще, как вы можете сделать это следующим образом:

var sub = subjects(); 

Таким образом, компилятор автоматически выберет тип возвращаемого значения на основе значения, возвращаемого из это способ. Если вы запутались в типе данных в таких назначениях, вы можете var позволить компилятору определить тип данных на основе значений.

0

Теперь нет никаких ошибок в коде, но в время выполнения компилятор ошибок не печатает (суб)
Console.WriteLine (суб); Console.ReadLine();

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