c# - c#.net 中的全局变量

标签 c# .net global-variables

如何在 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();

您不需要创建该类的实例;事实上你不能,因为它是静态的。 new 直接用就行了。静态类中的所有成员也必须是静态的。字符串 Prefix 未标记为静态,因为 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/

相关文章:

c# - 在 C# 中遍历 json 对象

javascript - 我究竟如何从函数中更改全局变量?

Python 全局关键字与 Pylint W0603

python - 迭代地将字典转换为一组全局变量

c# - 如何跳过printDocument.print()中的打印对话框,直接打印页面?

.net - 是否有等效于 C 的 atoi 函数的 .NET?

c# - 针对多个模式验证未知 xml,直到找到匹配项

c# - 使用 jQuery 将 byte[] 渲染为图像

c# - C# 程序员如何使用 javascript 编写解决方案?

.net - 将 .Net 服务与 Microsoft Exchange 集成