【问题标题】:How to access array from another method in c#如何从c#中的另一个方法访问数组
【发布时间】:2014-08-03 08:19:00
【问题描述】:

在这个例子中如何从另一个方法访问数组?我是 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];
     }
 }

【问题讨论】:

  • 这实际上与数组无关——它通常是变量。目前你有 local 变量,它们只是方法状态的一部分。如果您希望状态为整个object,则需要将变量声明为实例变量。我建议您查看用于学习该语言的任何书籍或教程,看看它对实例变量(也称为字段)的说明。

标签: c# arrays methods


【解决方案1】:

正如 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];
    }

}

【讨论】:

    【解决方案2】:

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

     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];
         }
     }
    

    【讨论】:

      猜你喜欢
      • 2014-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多