2015-10-13 85 views
0

我需要訪問另一個函數中的變量。要訪問的變量和訪問函數是相同的類,相同的項目但功能不同。此外,沒有全局變量聲明訪問其範圍之外的變量值

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// 
} 
+1

你不能,但如果你解釋爲什麼你需要這個,我們可能能夠找到解決方法 – Domysee

+0

你不能像那樣訪問它們。你想要達到什麼目的? – Shetty

回答

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 ; 
    } 
} 
+0

如何修改函數簽名爲void'void gvFunction_Update(int something)'並將dbCompany作爲參數傳遞? –

+0

@GianPaolo - 這取決於要求,如果OP想從'gdDisplay_SelectedIndexChanged'調用該方法,那麼它很好,但OP從未提及過這一點。 –

0

在類中創建一個私有財產「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; 
} 

訪問變量如果您的財產「公共」,如果你想通過子類訪問它,你甚至可以訪問類之外的值,並「保護」。

我相信使用屬性是一個更好的方式去。我希望這有幫助。