C# 当前上下文中不存在名称“array1”和“getnum”

C# 当前上下文中不存在名称“array1”和“getnum”,c#,C#,嗨。我正试图用三种方法编写一个程序,每种方法只执行一个操作。GenerateEnum将getnum作为参数,并创建一个数组,其中的数字最多为getnum。RevArray反转数组,然后PrintArray将其打印出来。但是,我收到了错误消息。它们都是名称“array1”,并且名称“getnum”在当前上下文中不存在。我已经在Main方法中定义了它们,那么为什么它不起作用呢?请帮帮我。提前谢谢 我已经在Main方法中定义了它们 某些方法A中定义的变量仅对该方法可用。如果您想在其他方法中使用它们,您

嗨。我正试图用三种方法编写一个程序,每种方法只执行一个操作。GenerateEnum将getnum作为参数,并创建一个数组,其中的数字最多为getnum。RevArray反转数组,然后PrintArray将其打印出来。但是,我收到了错误消息。它们都是名称“array1”,并且名称“getnum”在当前上下文中不存在。我已经在Main方法中定义了它们,那么为什么它不起作用呢?请帮帮我。提前谢谢

我已经在Main方法中定义了它们

某些方法A中定义的变量仅对该方法可用。如果您想在其他方法中使用它们,您需要

在更大的范围内声明它们,例如,通过使它们成为类的静态字段或 将它们作为参数传递。 后者通常更可取,参见,例如

例如,GenerateEnum可以定义为


class Program {
    static void Main(string[] args) {
        string getnums = Console.ReadLine();
        int getnum=Convert.ToInt32(getnums);
        int[] array1=new int[getnum];
        
        GenerateNum(getnum);
        RevArray();
        PrintArray();
    }
    static int[] GenerateNum(int g){
        
        for(int index=0; index<g; index++){
            array1[index]=index;
        }
        return array1;
    }
    static int[] RevArray(){
        for(int index=0; index<=getnum/2; index++){
            int a=array1[index];
            array1[index]=array1[getnum];
            array1[getnum]=a;
        }
        return array1;
    }
    static void PrintArray(){
        Console.WriteLine(array1);
    }
} 
并称为

 static int[] GenerateNum(int g, int[] array1) { ... }
代码中还有许多其他方面可以改进,例如,如果修改数组,则不需要返回数组,GenerateNum可以分配数组本身,而不需要传递具有正确大小的数组,因此您可能希望在运行代码后将代码提交给

我已经在Main方法中定义了它们

某些方法A中定义的变量仅对该方法可用。如果您想在其他方法中使用它们,您需要

在更大的范围内声明它们,例如,通过使它们成为类的静态字段或 将它们作为参数传递。 后者通常更可取,参见,例如

例如,GenerateEnum可以定义为


class Program {
    static void Main(string[] args) {
        string getnums = Console.ReadLine();
        int getnum=Convert.ToInt32(getnums);
        int[] array1=new int[getnum];
        
        GenerateNum(getnum);
        RevArray();
        PrintArray();
    }
    static int[] GenerateNum(int g){
        
        for(int index=0; index<g; index++){
            array1[index]=index;
        }
        return array1;
    }
    static int[] RevArray(){
        for(int index=0; index<=getnum/2; index++){
            int a=array1[index];
            array1[index]=array1[getnum];
            array1[getnum]=a;
        }
        return array1;
    }
    static void PrintArray(){
        Console.WriteLine(array1);
    }
} 
并称为

 static int[] GenerateNum(int g, int[] array1) { ... }

代码中还有很多其他方面可以改进,例如,如果修改数组,则不需要返回数组,GenerateEnum可以分配数组本身,而不需要传递具有正确大小的数组,因此,您可能希望在运行代码后将其提交给。

这些变量是主函数的本地变量,因此您无法访问它们。您需要在更大的范围内声明它们,比如将它们定义为程序类的字段。这些变量是主函数的局部变量,因此您无法访问它们。您需要在更大的范围内声明它们,比如将它们定义为程序类的字段。非常感谢!非常感谢你!