2017-06-14 17 views
-7

このコードでは、2つの出力関数と1つのメイン関数を作成しました。
mainで出力関数を呼び出すと、エラーが発生します。静的キーワードなしでmianの出力関数へのアクセス

using System; 
public class InitArray 
{ 
    public static void Main() 
    { 
     int[,] rectangular = { { 1, 3, 4 }, { 5, 2, 4 } }; 
     int[][] jagged = { new int[] { 2, 3, 4 }, new int[] { 3, 4, 5 }}; 
    } 

    public void OutputArray(int [,]array) 
    { 
     for(int row=0;row<array.GetLength(0);row++) 
     { 
      for (int column = 0; column < array.GetLength(1); column++) 
       Console.Write("{0} ", array[row, column]); 
      Console.WriteLine(); 
     } 

    } 

    public void OutputArray(int [][]array) 
    { 
     foreach(var row in array) 
     { 
      foreach (var element in row) 
       Console.Write("{0} ", element); 
      Console.WriteLine(); 
     } 
    } 
} 

これは主な機能であり、2つの配列がギザギザであり、その他が長方形である。

定義された関数に静的キーワードがなく、main関数でアクセスできませんでした。

この第2の出力関数も非静的関数であり、これもメインではアクセスされません。

誰でも私の理由を教えていただけますか?

+2

タグ付けされたすべての異なる言語で何をstaticなどの方法をマークいずれかの理由ですか? – khelwood

+1

タグをスパムしないでください。これは、Java、HTML、またはASP.NETとは関係ありません。 – InternetAussie

+0

'OutputArray()'メソッドは、 'Main()'メソッドからそれ自身をインスタンスなしで呼び出すには静的である必要があります。 'public static void OutputArray(...)'を試してください –

答えて

3

非スタティックメソッドが必要ですインスタンス;

public static void OutputArray(int[][] array) { 
    ... 
} 

public static void Main() { 
    ... 
    OutputArray(...); 
    ... 
} 

またはインスタンス作成し、提供します:

public void OutputArray(int[][] array) { 
    ... 
} 

public static void Main() { 
    ... 

    var instance = new InitArray(); 

    instance.OutputArray(...); 
    ... 
} 
関連する問題