2016-12-30 6 views
-3

以下のコードをコンパイルしようとすると、Visual Studioコミュニティ15でこのエラーが発生します。私は "PrintFirstElement"という名前のメソッドを作成し、メソッドに引数として変数myArrayを渡そうとしています。このコンテキストにPrintFirstElementという名前が存在しないというエラーが表示されます。私には意味がありません。どんな助けもありがとう。あなたが他のクラスから、あなたのArraysクラスに存在するPrintFirstElementメソッドをコールしようとしているCS0103メソッドを呼び出すときのエラーメッセージ

namespace ConsoleApplication6 
{ 
    class Arrays 
    { 
     public void PrintFirstElement(int[] a) 
     { 
      Console.WriteLine("The first element is {0}. /n", a[0]); 
     } 
    } 

    class Program 
    { 
     static void Main(string[] args) 
     { 
      int[] myArray = { 1, 2, 3, 4, 5 }; 
      PrintFirstElement(myArray); 
     } 
    } 
} 
+1

'PrintFirstElement'は別のクラスにあります。静的に参照するか、インスタンスを作成して取得する必要があります。 – BradleyDotNET

+1

エラー '/ n'とは無関係で、おそらく' \ n'( 'Console.WriteLine'呼び出しの内側)でしょうか?もしあなたがそれをまったく必要としていても( 'WriteLine'は自動的に改行を追加します) – UnholySheep

答えて

2

からProgram。これを行うには、Arraysクラスをインスタンス化して、インスタンスの名前でメソッド呼び出しを修飾するか、にPrintFirstElementメソッドを変更し、メソッド呼び出しをクラス自体の名前で修飾する必要があります。だから、

、このいずれかの操作を行います。

int[] myArray = { 1, 2, 3, 4, 5 }; 
var a = new Arrays(); // create an instance of the `Arrays` class 
a.PrintFirstElement(myArray); 

またはpublic static void PrintFirstElement(int[] a)にあなたの方法を変更し、Arrays.PrintFirstElement(myArray);からMainでの呼び出しを変更します。

+0

Roryが理にかなっています。私は本から働いていて、とてもうまく説明されなかった細部があったので、私の方法の誤りを見る。御時間ありがとうございます。 –

0

ローリーは完全に正しい。私はちょうど彼の答えにいくつかの情報を追加したい。メソッドを静的に変更すると、このメソッドはメモリによって認識されます。したがって、メソッドのオブジェクトを作成する必要はありません。

+0

余計な洞察をいただきありがとうございます。とても有難い。 –

関連する問題