我可以为每个范围内的变量指定一个值吗?
我可以给一个变量赋一个值(int),并且不会在任何范围内丢失这个值吗?
问题是我的值赋给在某些范围的变量,但该变量返回到其他范围内的默认值(零).. 例子:我可以为每个范围内的变量指定一个值吗?
protected void Button_AddNewCourse_Click(object sender, EventArgs e)
{
ID = 10;
}
所以,当我试图使用ID
在其他功能中它回落到零
protected void AnotherFunction(object sender, EventArgs e)
{
// Variable ID here is zero
}
变化看起来类似于此行(这可能是某处):
public int ID { get; set;}
喜欢的东西
// keep the value of ID in this page only
public int ID { get { return (int)ViewState["ID"]; } set { ViewState["ID"] = value; } }
或
// keep the value of ID in every page
public int ID { get { return (int)Session["ID"]; } set { Session["ID"] = value; } }
这就是我正在寻找,谢谢!...但我怎么能做到这一点在c#(无asp.net)的桌面应用程序? – fadi 2010-09-22 11:09:46
使用'public static int ID {get;组; }'然后像'SomeForm.ID'那样调用变量。 – 2010-09-22 11:30:15
也许尝试使用readonly
变量?
有人猜测,也许你是ASP.NET的新手,并没有弄清楚为什么页面级别的变量不会在回发之间保持状态。尝试在Session状态和Viewstate
或者一个概述阅读了:ASP.NET State Management Overview
例如根据你的代码示例,你可以使用一个会话条目存储值:
protected void Button_AddNewCourse_Click(object sender, EventArgs e)
{
Session["ID"] = 10;
}
protected void AnotherFunction(object sender, EventArgs e)
{
int tempID = (int)Session["ID"];
}
还有很多其他的事情可以做也 - 使用视图状态,例如。
这个问题是非常不清楚。一些示例代码会有很大的帮助。 – 2010-09-22 10:42:30
抱歉不清楚......我真的不知道该怎么写,因为它太简单了。 – fadi 2010-09-22 10:52:20