访问其范围之外的变量值

时间:2015-10-13 09:00:58

标签: c# asp.net webforms

我需要访问另一个函数中的变量。要访问和访问的函数是同一个类,相同的项目,但不同的功能。此外,没有全局变量声明

protected void gdDisplay_SelectedIndexChanged(object sender, EventArgs e)
{
       int dbCompany = Convert.ToInt32(gdDisplay.SelectedRow.Cells[2].Text);
}
void gvFunction_Update()
{
       //place to access dbcompany variable//
}

2 个答案:

答案 0 :(得分:1)

创建一个私有财产" DbCompany"在类中通过属性访问变量

private int DbCompany {get;set;}

protected void gdDisplay_SelectedIndexChanged(object sender, EventArgs e)
{
       int dbCompany = Convert.ToInt32(gdDisplay.SelectedRow.Cells[2].Text);
       //This is where the property gets its value 
       DbCompany = dbCompany; 
 }
void gvFunction_Update()
{
   //place to access dbcompany variable//
   //Get the value from DbCompany;
   int dbcompany = DbCompany;
}

如果您将该属性设为" public",您甚至可以访问该课程以外的值和" protected"如果您希望能够通过子类访问它。

我相信使用属性是一种更好的方法。我希望这有帮助。

答案 1 :(得分:0)

您无法访问,因为dbCompanygdDisplay_SelectedIndexChanged方法中的局部变量。您必须在类级别声明一个全局变量: -

 public partial class Default : System.Web.UI.Page
 {
    int dbCompany = 0;
    protected void Page_Load(object sender, EventArgs e)
    {
        //Page Load event
    }
    protected void gdDisplay_SelectedIndexChanged(object sender, EventArgs e)
    {
        dbCompany = Convert.ToInt32(gdDisplay.SelectedRow.Cells[2].Text);
    }
    void gvFunction_Update()
    {
        int x = dbCompany ;
    }
 }