2017-02-20 9 views
-1

私はC#を初めて使用していますが、なぜこれが機能しないのかわかりません。私は次のようにメインにsubject()エラーが出ます。mainの文字列配列メソッドの呼び出し方法#

私のコードは以下の通りです:

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

あなたは `[]の文字列としてsubstring sub)が、方法subjects is returning a string array. Soサブis not able to hold the return value from that method. you have to change the return type ofサブfrom string to文字列を定義しています。だから、コンパイラが自動的からの戻り値に基づいて、戻り値の型を選択します

var sub = subjects(); 

string[] sub = subjects(); 

それともあなたはこのようにそれを行うことができますはるかに簡単な方法で:それは、宣言は次のようにする必要があります意味しますその方法。そのような代入のデータ型について混乱する場合は、varを使用して、コンパイラに値に基づいてデータ型を決定させることができます。

0

今すぐエラーコンパイラが印刷されていないコードではなく、実行時にエラー(サブ)
ます。Console.WriteLine(サブ)がない/ ** /コメントを参照してください。 Console.ReadLine();

関連する問題