我以前在使用vb.net中的模块创建全局变量的窗口应用程序,但我发现在C#中没有模块的概念。那么如何在C#中创建全局变量
答案 0 :(得分:6)
好吧,你可以在公共类中使用公共静态变量......但我真的敦促你不要这样做。
这些变量值是否会发生变化?它们代表什么?不要忘记所有用户都将使用相同的变量集。
答案 1 :(得分:3)
您正在谈论一个Web应用程序,因此如果您的变量仅在一个会话中使用,我建议您使用Session State。我建议您将Application State用于应用程序范围的变量。
答案 2 :(得分:0)
静态类的静态成员?
Google快速搜索C#教程会产生以下结果:
http://www.csharp-station.com/tutorial.aspx
您应该从头开始,尝试学习面向对象编程的基础知识。
祝你好运。答案 3 :(得分:0)
如果您使用的是ASP.NET,我会考虑使用Session和Application状态,因为ASP.NET是无状态的。这假设您正在讨论跨请求存储“全局”信息,而不仅仅是拥有一个容器来保存多个对象在一个请求期间可以访问的值。如果我的假设是错误的,我会看看Jon的答案。
http://msdn.microsoft.com/en-us/library/ms972429.aspx
根据以下评论,您将要了解如何创建单例模式。
http://www.dofactory.com/patterns/PatternSingleton.aspx
在执行此操作之前,我会真正了解您为什么要在ASP.NET应用程序中使用它,因为如果实现不正确会严重影响性能。
由于您想要做的事情包围数据库内容我还会看一下:
http://www.15seconds.com/Issue/040830.htm 和 http://msdn.microsoft.com/en-us/magazine/cc163854.aspx
答案 4 :(得分:0)
VB模块基本上是C#中的公共静态类。但就像Jon说的那样,你真的必须提出使用全局变量的充分理由。
答案 5 :(得分:0)
在ASP.Net中,您可以使用Cache对象创建等效的全局变量。
Cache["someName"] = "some value";
使用Cache的一个好处是可以在其中放置对象。
另一个好处是你可以改变代码中的值。
您也可以使用Application对象,但由于内存管理,首选Cache。
与往常一样,您应该避免过度使用这些全局变量,并尽量减小它们的大小。
答案 6 :(得分:0)
全局?拒绝吧。应不惜一切代价避免全球化。如果是配置数据,请使用应用程序配置。
答案 7 :(得分:0)
或根据您的需要使用应用程序,会话或视图状态对象。但正如“Jon Skeet”所说,应该避免使用全局变量。但如果你坚持要看一下这个链接:Microsoft KB Article
答案 8 :(得分:0)
你 COULD 使用global.aspx文件,并在其中设置属性。 但如上所述......为什么你需要一个全局变量? 如果您尝试保持连接字符串和系统范围的静态变量.. 把它放在web.config。
抱歉误读了..那是针对网络应用的。