C# 为什么要重新初始化全局变量
我将详细说明,我将在下面设置一些标志作为全局变量,以便在整个C程序中使用它们。我运行debug,似乎每次页面重新加载或页面加载例程运行时,全局变量都会重新初始化。为什么,我怎样才能防止这种情况C# 为什么要重新初始化全局变量,c#,asp.net,webforms,C#,Asp.net,Webforms,我将详细说明,我将在下面设置一些标志作为全局变量,以便在整个C程序中使用它们。我运行debug,似乎每次页面重新加载或页面加载例程运行时,全局变量都会重新初始化。为什么,我怎样才能防止这种情况 public partial class MakePayment1 : System.Web.UI.UserControl { Queries Q = new Queries(); decimal nopmt; decimal nopymts2;
public partial class MakePayment1 : System.Web.UI.UserControl
{
Queries Q = new Queries();
decimal nopmt;
decimal nopymts2;
StringBuilder sb = new StringBuilder();
string autopay;
string ppol;
string whydt;
string ccEnd;
string pmtType;
bool credCard;
bool nwCard;
bool today;
bool fdate;
bool dueToday;
bool dueTime;
bool expTime;
SessionVars SV = new SessionVars();
string nxtpaymnt = "";
string nxtpaymntDt = "";
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
LoadPageData();
getContractInfo();
C没有实际的全局变量。也许你指的是静态变量?如果是这样的话,您应该说静态变量,以减少混淆 每次加载页面时都会重新创建控件。所以你必须把数据保存在某个地方。通常在控件中,在请求之间持久化数据的最佳方法是在ViewState中 如果要持久化某些数据,必须使用、本地文件或数据库等。加载控件时,检索数据
我要提醒您不要在控件中使用ViewState之外的任何东西:通常在控件中,您可能会打开两个选项卡。您可能不希望这些数据混杂在一起,因为这可能会混淆用户。由于ViewState直接存储在页面上,因此不必担心它会混淆。它们看起来不像全局变量。它们是,我取消了初始化,因为我认为这是问题所在。如图所示,它们是成员变量。它们与创建的类的每个实例相关联,并且每次页面加载都会创建一个新实例。明白了,我将使用会话参数。谢谢你这就是我想的。。。非常感谢。这将大有帮助。旁注:C没有全局变量虽然从语法的角度来看形式是正确的,但此语句可能并不反映每个人对全局变量的含义-静态字段/属性在常识上是全局变量。@AlexeiLevenkov True。我发表了措辞强硬的声明,让他停下来。我敦促任何在C中使用术语“全局变量”的人停止使用该术语。静态更准确,也更容易说。