2017-01-04 11 views
0

なぜstudentinformationにアクセスできないのか分かりません。getstudentinformationです。ここでは、コードは次のようになります。Returning not working

static void Main(string[] args) 
{ 
    getstudentinformation(); 
    string firstname = studentinformation[0]; 
} 

static Array getstudentinformation() 
{ 
    Console.WriteLine("enter the student's first name: "); 
    string firstname = Console.ReadLine(); 
    Console.WriteLine("enter the student's last name"); 
    string lastname = Console.ReadLine(); 
    Console.WriteLine("enter student's gender"); 
    string gender = Console.ReadLine(); 
    string[] studentinformation = { firstname, lastname, gender }; 
    return studentinformation; 
} 

Visual Studioは、配列を認識しないと、私はコードをビルドしようとすると、studentinformationを認識しないこのエラーがあります。

+0

あなたのコードは動作します。非常にきれいではありませんが、コンパイルして配列を返します。どのような正確なエラーメッセージが表示されますか? –

答えて

5

コードが間違っています。これを試してみてください:

static void Main(string[] args) 
    { 
     string[] studentInformation = getstudentinformation(); 
     string firstname = studentinformation[0]; 
    } 
    static string[] getstudentinformation() 
    { 
     Console.WriteLine("enter the student's first name: "); 
     string firstname = Console.ReadLine(); 
     Console.WriteLine("enter the student's last name"); 
     string lastname = Console.ReadLine(); 
     Console.WriteLine("enter student's gender"); 
     string gender = Console.ReadLine(); 
     string[] studentinformation = { firstname, lastname, gender }; 
     return studentinformation; 
    } 

あなたは、任意の変数にgetstudentinformationの結果を割り当てていなかったとあなたがアクセスしようとしている変数は別のスコープ内で宣言されているので、あなたはそれにアクセスすることができません。

+2

あなたが彼に配列と文字列の違いを説明してくれればうれしいです[] –

+1

このコードは悪くありません。あなたが投稿する前にあなたの答えをチェックすれば、それはコンパイルされます。 –

+0

@MaksimSimkinどのように間違っているのではない、あなたはこのコードではなく、この答えをコンパイルしてもよろしいですか?回答者は内部で宣言されたときにどのように学生情報にアクセスできますか? –

3

あなたの方法は大丈夫です、間違ってどのように使用するのですか?このArrayクラスを使用してNicoRiffが提案されているように、例えば道をそれを行うにはない

var firstname = getstudentinformation().GetValue(0); 

しかし、私の助言:メインで

static string[] getstudentinformation() 

と使用方法:

var firstname = getstudentinformation()[0]; 
このようにそれを実行します。

Arrayクラスはすべての配列(string[]も)の基本クラスなので、文字列配列はArrayですが、すべてではありませんは、1つの方向を唱えられるためにそこに、文字列配列であるが、ここではそれについて別の非より:

https://msdn.microsoft.com/library/system.array(v=vs.110).aspx