如何在C#中访问全局变量,如在VB.net中?

时间:2011-09-21 05:40:52

标签: c# vb.net winforms static

如果我们在vb.net的模块中声明一个global变量,我们可以在项目的任何地方使用该变量。

我们如何在C#中实现同样的目标。

以前当我们尝试将vb.net项目转换为C#时,我们成功删除了语法错误,但我们无法访问表单中的全局变量。

我需要一些解决方案或指导。我在哪里弄错了?

6 个答案:

答案 0 :(得分:3)

在C#中,您可以声明static字段。

public class Foo
{
   public static string value;
}

并在任何地方使用ClassName.Member语法使用value字段。

Foo.value="Hello!";

答案 1 :(得分:3)

您可以通过将变量放在静态类中来近似VB.Net Module功能:

public static class Foo
{
     public static string Bar { get; set; }
}

这将允许您通过Foo.Bar

在命名空间中的任何位置访问它

答案 2 :(得分:2)

您可能还想考虑使用Singleton Pattern。这使您的变量初始化逻辑保持在合理的位置。它也很容易保护或跟踪变量的变化。

答案 3 :(得分:1)

答案 4 :(得分:0)

应该一样。确保标记为静态。或者尝试在模块中使用静态属性而不是变量。

答案 5 :(得分:0)

如果它是值类型,如int,string等,则不能声明公共变量。

但是你可以将它包装在struct中,例如