如何在 C# 网络应用程序中设置全局变量?
我想做的是在一个页面(也许是母版页)上设置一个变量并从任何页面访问这个变量。
我不想使用缓存和 session 。
我认为我必须使用 global.asax。有帮助吗?
最佳答案
使用公共(public)静态类并从任何地方访问它。
public static class MyGlobals {
public const string Prefix = "ID_"; // cannot change
public static int Total = 5; // can change because not const
}
像这样使用,从母版页或任何地方:
string strStuff = MyGlobals.Prefix + "something";
textBox1.Text = "total of " + MyGlobals.Total.ToString();
您不需要创建该类的实例;事实上你不能,因为它是静态的。 直接用就行了。静态类中的所有成员也必须是静态的。字符串 Prefix 未标记为静态,因为 new
const
本质上是隐式静态的。
静态类可以在项目的任何地方。它不必是 Global.asax 或任何特定页面的一部分,因为它是“全局的”(或者至少我们在面向对象的术语中尽可能接近该概念。)
您可以创建任意数量的静态类,并随意命名。
有时程序员喜欢使用嵌套的静态类来对常量进行分组。例如,
public static class Globals {
public static class DbProcedures {
public const string Sp_Get_Addresses = "dbo.[Get_Addresses]";
public const string Sp_Get_Names = "dbo.[Get_First_Names]";
}
public static class Commands {
public const string Go = "go";
public const string SubmitPage = "submit_now";
}
}
并像这样访问它们:
MyDbCommand proc = new MyDbCommand( Globals.DbProcedures.Sp_Get_Addresses );
proc.Execute();
//or
string strCommand = Globals.Commands.Go;
关于c# - c#.net 中的全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2445436/