在这段代码中,我做了两个输出功能和一个主要功能 当我在main中调用输出函数时,程序会给出错误。
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函数中访问。
这个第二个输出函数也是一个非静态函数,这也不是main中的访问。
任何人都能告诉我原因吗?
答案 0 :(得分: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(...);
...
}