2013-02-15 123 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