使用mian访问输出函数而不使用static关键字

时间:2017-06-14 12:27:24

标签: c#

在这段代码中,我做了两个输出功能和一个主要功能 当我在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中的访问。

任何人都能告诉我原因吗?

1 个答案:

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