我是一名进入网络开发的Windows Forms人。在我的所有其他程序中,我将创建一个静态类来保存程序范围的变量,例如
public static class GlobalVariables
{
public static DateTime expDate;
public static DateTime quoteDate;
public static decimal discountTotal1 = 0;
public static decimal discountTotal2 = 0;
public static decimal discountTotal3 = 0;
public static decimal finalTotal;
public static decimal netWeight;
public static decimal qlWeight;
public static decimal runningTotal;
public static decimal workingTotal;
}
我的一位专业网站开发人员表示,当多个用户使用我的网络应用程序时,所有这些变量都会被覆盖。
他是对的吗?如果是这样的话?如何使这些变量特定于用户?
答案 0 :(得分:2)
在Web应用程序中,如果您想要全局变量,请使用Session
个变量。
例如:Session["discountTotal1"] = 0;
这些会话变量是特定于用户的。
静态变量范围是应用程序范围,将在所有用户之间共享。您需要使用Session来存储每个用户,因此可以在所有页面中访问它。另一方面,如果您只是在特定页面上需要它,您可以将其保存在ViewState中,并可以在回发中获取它。