【问题标题】:Visual C# - Error 1 The name 'a' does not exist in the current contextVisual C# - 错误 1 ​​当前上下文中不存在名称“a”
【发布时间】:2011-11-01 17:45:09
【问题描述】:
private void button6_Click(object sender, EventArgs e)
{  

     for (int i = 0; i < a.Length; i++)
     {
        MessageBox.Show(a[i]);
     }

 }

 public void button7_Click(object sender, EventArgs e)
 {
      string[] a = { textBox1.Text};
 }

【问题讨论】:

  • 该错误表示您没有在“button6_Click”方法中声明“a”变量。注意:“button7_Click”中声明的“a”不可见

标签: c# arrays public


【解决方案1】:

a 是一个方法变量;它仅在每次调用button7_Click 时存在。我怀疑您需要将其设为 *field:

     for (int i = 0; i < a.Length; i++)
    {
        MessageBox.Show(a[i]);
    }

}
private string[] a;
public void button7_Click(object sender, EventArgs e)
{
     a = new string[]{ textBox1.Text};
}

然后:选择一个比a更好的名字。

【讨论】:

    【解决方案2】:

    因为 a 被定义为 button7_click 函数的局部变量,所以它在表单上是全局的;在表单的变量上定义它

    【讨论】:

      【解决方案3】:

      a 不在 button6 点击的范围内。

      您必须在该处理程序中将其声明为字段,或在自定义事件参数中将其传递。

      你也可以这样做

       private void button6_Click(object sender, EventArgs e) {
              string[] a = { textBox1.Text};
              for (int i = 0; i < a.Length; i++)
              {
                  MessageBox.Show(a[i]);
              }
      
          }
      

      【讨论】:

        【解决方案4】:

        您在 button6_Click 中调用“a.Length”,但该方法中未定义 a。如果您在两种方法中都需要“a”,则需要将其设为类变量。但从外观上看,您也可以在方法 button6_Click 中获取文本框的内容。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-09-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多