在.NET中,是否存在全局变量的概念?

时间:2014-07-17 11:42:54

标签: c# .net global-variables

在VB6中,我们有全局变量,这些变量在模块文件中声明。

在.NET中,我们有这样的概念吗?或者它被会话变量替换为的静态常量变量,可以用作全局数据?

4 个答案:

答案 0 :(得分:2)

您可以创建公共静态类

public static class GlobalVariable{
public static int globalvariable = 100;

}

然后你可以访问

GlobalVariable.globalvariable

答案 1 :(得分:1)

会话和应用程序变量是"全球"在网络平台上。

  • 会话VAR(全局到用户会话)
  • 应用程序VAR(网站的全局到IIS进程,即访问网站/应用程序的所有会话)

具有公共变量的模块对于Windows类型应用程序中的所有表单/类都是全局的。

答案 2 :(得分:1)

在VB.NET中,您可以添加模块文件。在该模块文件中,您必须使用Public声明变量和/或函数。但这只是在VB.NET中

示例,模块文件将是这样的

Module UserDetails

Public SqlCon as SqlConnection
Public DataSet as DataSet
Public dataAdaptr as SqlDataAdapter

End Module

在上面的例子中,我使用sql连接,数据集,来自任何表单,类和模块的数据适配器。

此示例已在我的项目中使用。您也可以在Asp.net项目中使用它。

答案 3 :(得分:0)

我可能会因为提及它而遇到麻烦,因为这是一个非常禁忌的主题。还有单例类,它们是可以实例化的类对象,但一次只能存在一个。我使用一个用于Winforms的自定义控制台。但是,是的,您还可以使用带有静态变量的公共静态类。这些可以被修改,但是由于它违反神圣的封装原则,你会遇到“面向对象的精神”宗教人士的麻烦。

老实说,我曾经只需要一个可能被称为“全局变量”的东西,这就是我想在我的控制台单例上占用多少空间才开始删除旧行。

你需要一个全局变量?在大多数情况下,它们很难用于多线程,它们通常表明你没有考虑可重用的代码。全局变量是面向对象编程的管道磁带。