2013-02-15 220 views
0

我有一個類叫做Global.cs公共變量訪問

public class Global 
{ 
    private string id= string.Empty; 
    public string Id 
    { 
     get { return id;} 
     set { id= value; } 
    } 
} 

現在在Main類,

public class Main 
{ 
    public Global objGlobal; 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     objGlobal= new Global(); 
     objGlobal.id="XX001"; 
    } 
    public void Setdata() 
    { 
     // Trying to access objGlobal.id value here but it's null 
    } 
} 

我缺少什麼?

+0

這是行不通的。如果兩個用戶一次訪問您的網站會怎麼樣?考慮使用會話狀態。 – SLaks 2013-02-15 19:37:25

+0

你的領域和你的財產都被稱爲'ID'?這甚至編譯? – dtb 2013-02-15 19:38:02

+0

你在調用「Page_Load」之前調用'Setdata'嗎? – dtb 2013-02-15 19:38:59

回答

2

你不應該總是得到/設置「Id」而不是「id」。由於「ID」是私人的。

+0

考慮一種情況,我可以檢索用戶配置文件信息並保存頁面加載事件中的變量。現在,我需要很少的函數來使用這些變量數據,而無需將它們作爲函數參數傳遞給它們.Also ,不想使用會話 – Rishi 2013-02-15 19:57:16

+0

這些函數是否都使用同一類中的變量? – UncleDave 2013-02-15 20:03:13

+0

是e相同的類但功能不同 – Rishi 2013-02-15 20:07:17

0

那麼,你的XX類實例是不止一次。

如果您需要保留一些用戶報告信息,請嘗試將其存儲到SessionState中。

如果您只需要靜態類與一些靜態數據,請將static關鍵字添加到類及其成員。

+0

所以你的意思是說沒有使用「會話」和「靜態」我不能保存一些變量通過課堂? – Rishi 2013-02-15 19:49:25

+1

@Rishi你不能堅持它在你創建的每個Web請求內的類,因爲每次執行請求,類將是 – AgentFire 2013-02-17 06:51:43