如何在类中调用静态方法

时间:2016-10-16 22:49:43

标签: c# arrays function

我定义了数组和函数但是我在调​​用函数时遇到了麻烦,我是否应该使用类名或对象来调用函数

public static string PrintArray (int [,] arr)
    {
        string output = "";
        for (int i = 0; i<arr.GetLength(0);i++)
        {
            for (int j = 0; j < arr.GetLength(1); j++)
                output += arr[i,j];
            output = output.Substring(0, output.Length)+"/n";
        }
        return output;
    }
    public static void Fill(int[,] arr,int min, int max)
    {
        Random r = new Random();
        for (int i = 0; i < arr.GetLength(0); i++)
        {
            arr[i] = r.Next(min, max);
            for (int j = 0; j < arr.GetLength(1); j++)
            {
                arr[i,j] = r.Next(min, max);
            }

        }
    }

1 个答案:

答案 0 :(得分:2)

如果您使用static方法,则必须使用类名调用它们。如果它是instance(非静态)方法,则只能从对象调用,无法从对象实例或static调用instance方法来自静态类名的方法。

在您的情况下,由于您已定义static方法,因此必须以静态方式引用它们。例如,如果您的班级被称为ArrayHelper

public class ArrayHelper
{
    public static string PrintArray (int [,] arr)
    {
        string output = "";
        for (int i = 0; i<arr.GetLength(0);i++)
        {
            for (int j = 0; j < arr.GetLength(1); j++)
                output += arr[i,j];
            output = output.Substring(0, output.Length)+"/n";
        }
        return output;
    }

    public static void Fill(int[,] arr,int min, int max)
    {
        Random r = new Random();
        for (int i = 0; i < arr.GetLength(0); i++)
        {
            arr[i] = r.Next(min, max);
            for (int j = 0; j < arr.GetLength(1); j++)
            {
                arr[i,j] = r.Next(min, max);
            }
        }
    }
}

您可以像这样使用

var array = ...
ArrayHelper.Fill(array, 10, 20);