Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在c中如何从另一个方法访问数组#_C#_Arrays_Methods - Fatal编程技术网

C# 在c中如何从另一个方法访问数组#

C# 在c中如何从另一个方法访问数组#,c#,arrays,methods,C#,Arrays,Methods,在本例中,如何从另一个方法访问数组?我是c#的新手,如果你能帮助我,我真的很感激。提前谢谢 private void button1_Click(object sender, EventArgs e) { int[] array1 = new int[5]; for (int i = 0; i < 5; i++) { array1[i] = i; } } private void button2_Click(object sender,

在本例中,如何从另一个方法访问数组?我是c#的新手,如果你能帮助我,我真的很感激。提前谢谢

 private void button1_Click(object sender, EventArgs e) {
     int[] array1 = new int[5];
     for (int i = 0; i < 5; i++) {
         array1[i] = i;
     }
 }
 private void button2_Click(object sender, EventArgs e) {
     int[] array2 = new int[5];
     for (int i = 0; i < 5; i++) {
         array2[i] = array1[i];
     }
 }
private void按钮1\u单击(对象发送者,事件参数e){
int[]数组1=新int[5];
对于(int i=0;i<5;i++){
阵列1[i]=i;
}
}
私有无效按钮2\u单击(对象发送者,事件参数e){
int[]array2=新int[5];
对于(int i=0;i<5;i++){
阵列2[i]=阵列1[i];
}
}

在外部声明两个数组以启用访问

 int[] array1, array2;
 private void button1_Click(object sender, EventArgs e) {
     array1 = new int[5];
     for (int i = 0; i < 5; i++) {
         array1[i] = i;
     }
 }
 private void button2_Click(object sender, EventArgs e) {
     array2 = new int[5];
     for (int i = 0; i < 5; i++) {
         array2[i] = array1[i];
     }
 }
int[]数组1,数组2;
私有无效按钮1\u单击(对象发送者,事件参数e){
array1=新整数[5];
对于(int i=0;i<5;i++){
阵列1[i]=i;
}
}
私有无效按钮2\u单击(对象发送者,事件参数e){
array2=新整数[5];
对于(int i=0;i<5;i++){
阵列2[i]=阵列1[i];
}
}

正如Jon Skeet在他的评论中提到的,根据定义,局部变量是定义它们的方法的局部变量。如果希望某个对象在全局可见,则需要将其设置为实例变量,或从方法返回

假设只有
array1
需要可见,那么在外部声明该数组就足够了

// Declare the array globally.
int[] array1 = new int[5];
private void button1_Click(object sender, EventArgs e)
{
    // Initially the array inside this method.
    for(int i=0;i<5;i++)
        array1[i]=i;
}

private void button2_Click(object sender, EventArgs e)
{
    int[] array2 = new int[5];
    // Copy from the global array
    for(int i=0;i<5;i++)
    {
        array2[i]=array1[1];
    }

}
//全局声明数组。
int[]数组1=新int[5];
私有无效按钮1\u单击(对象发送者,事件参数e)
{
//最初,此方法中的数组。

对于(int i=0;这与数组没有任何关系——它通常是变量。目前,您有局部变量,它们只是方法状态的一部分。如果您希望整个对象的状态是,则需要将该变量声明为实例变量。我建议您看看您正在学习的任何书籍或教程然后查看它对实例变量(也称为字段)的说明。