变量在Page_Load方法中声明时不可访问

本文关键字:声明 访问 方法 Page Load 变量 | 更新日期: 2023-09-27 18:19:24

当我声明一个变量时,让我们输入

public string [] companiesArray = {"Google","BBC","CNN","SportsDirect","Microsoft"};

紧跟在public分部类之后。页,变量是可访问的,但是当我在Page_Load方法中声明变量时,变量是不可访问的。

public void Page_Load(object sender, EventArgs e)
    {
    string [] companiesArray = {"Google","BBC","CNN","SportsDirect","Microsoft"};
    }

有什么问题吗?有谁能帮我一下吗?

变量在Page_Load方法中声明时不可访问

你需要了解作用域。

在页面中定义数组时,将作用域定义为类。你可以在类的任何地方使用这个变量。

public partial class Default : System.Web.UI.Page
{
   string[] companiesArray;
    public void DoFizz()
    {
        companiesArray[0] = "Fizz";
    }
    public void DoBuzz()
    {
        companiesArray[1] = "Buzz";
    }
}

当您在页面加载中定义它时,则作用域限制在该方法中,因此您只能在该方法中使用它。

public partial class Default : System.Web.UI.Page
{
    public void Page_Load(object sender, EventArgs e)
    {
        string[] companiesArray;
    }
}

这样做的一个主要优点是,如果您在方法中声明变量,它可以防止您意外地使用可能已经在其他地方定义和使用的变量。如果不是这种情况,您将无法保证变量的状态。

如果您在Page_load中声明该变量,则该作用域本地变量。

如果在public partial class Default : System.Web.UI.Page

之后声明变量

它是一个全局变量,适用于整个页面。

阅读Scope

如果在Page_Load方法中定义了一个变量,那么它是该方法的局部变量

如果你在方法之外定义它,它对其他代码是可见的,并且通常被称为字段,例如

public partial class Page : System.Web.UI.Page
{
   private string[] companiesArray = {"Google","BBC","CNN","SportsDirect","Microsoft"};
   public void Page_Load(object sender, EventArgs e)
   {
      //companiesArray  is visible here
   }
   public void SomeOtherMethod()
   {
      //companiesArray is visible here too
   }
}