从函数访问数组整数

时间:2019-03-30 13:10:37

标签: c# arrays

我正在尝试从函数的数组中写入整数,它始终显示“名称'((数组名)''在当前上下文中不存在”)

int counter = int.Parse(Console.ReadLine()); 
int[] nums = new int[counter];
while (counter > 0)
{
    nums[counter] = counter;
    counter--;
 } 

(基本上创建了一个数组,该数组具有用户选择的长度,并将数字从1放入数组中的计数器) 一些更改数组整数内容的代码之后 (计数器不变)

print(counter);

我创建的函数

public static void print(int count);
{
    *some code*
    while (count > 0)
    {
        Console.WriteLine(nums[count]); //line with the error
        count--;
    } 

}

我期望它在nums数组中写入整数,但事实并非如此。 (顺便说一句,我需要在函数内部编写它,稍后在代码中调用它)

2 个答案:

答案 0 :(得分:4)

好吧,这意味着您的数组不在函数的上下文中,因此它无法“看到”它。您必须在函数中声明它,通过类中的某个字段进行访问,或者将其作为参数传递

public static void print(int[] nums, int count)
{...}

答案 1 :(得分:0)

  

“名称'(数组名称)'在当前上下文中不存在”

由于错误提示您的函数无法在函数上下文中找到数组(因为它在函数本身之外)。

要找到它,您有两个选择:

print(counter, nums)
public static void print(int count, int[] nums)
{...}

或将所有内容包装在一个类中:

class Program
{
    static int[] nums; 
    static void Main(string[] args)
    {
        int counter = int.Parse(Console.ReadLine());
        int[] nums = new int[counter];
        while (counter > 0)
        {
            nums[counter] = counter;
            counter--;
        }
        print(counter);
    }
    public static void print(int count)
    {
        // some code
        while (count > 0)
        {
            Console.WriteLine(nums[count]); //line with the error
            count--;
        }
    }
}