2011-09-21 75 views
0

如果我们在vb.net模块中声明了global变量,我们可以在项目中的任何地方使用该变量。如何在C#中访问全局变量,如在VB.net中?

我们如何在C#中实现同样的事情。

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

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

+0

我认为你正在寻找类似的东西 http://stackoverflow.com/questions/4751013/c-global-module –

回答

3

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

public class Foo 
{ 
    public static string value; 
} 

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

Foo.value="Hello!"; 
+0

需要标记类'静态'以及使用提供的例子。 –

+0

@Dmitry:因为他的一个成员是'static'字段,所以不需要设置class'static' –

+2

@DmitryErokhin:实际上你不需要那样做 - 但是让类更加紧密地匹配VB.NET编译器会在您定义模块时执行。 –

0

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

0

你不能声明公共变量,如果它是值类型,如int,字符串等

但是你可以用它在结构例如

3

可以近似VB.Net Module功能通过将变量静态类的内部:

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

这将让您通过Foo.Bar任何地方访问它的命名空间。

2

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