2017-06-14 62 views
-7

在這段代碼中我做了兩個輸出函數和一個主函數。
當我在主要調用輸出函數時,程序會給出錯誤。在沒有靜態關鍵字的情況下訪問輸出函數

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(); 
     } 
    } 
} 

這是主要功能和有兩個數組一個是鋸齒狀和其他是矩形類型。

定義的函數沒有static關鍵字,我無法在主函數中訪問。

這第二個輸出函數也是一個非靜態函數,這在main中也是不可訪問的。

任何人都可以告訴我原因?

+2

什麼用各種不同的語言標記的? – khelwood

+1

不要發送垃圾郵件標籤。這與Java,HTML或ASP.NET無關。 – InternetAussie

+0

你的'OutputArray()'方法需要是'static'來調用它從'Main()'方法沒有它自己的實例,試'公共靜態無效OutputArray(...)' –

回答

3

非靜態方法想要實例;這就是爲什麼任何標記方法static

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(...); 
    ... 
} 
相關問題