如果我们在vb.net模块中声明了global
变量,我们可以在项目中的任何地方使用该变量。如何在C#中访问全局变量,如在VB.net中?
我们如何在C#中实现同样的事情。
此前,当我们试图将vb.net项目转换为C#时,我们成功地删除了语法错误,但无法访问表单中的全局变量。
我需要一些解决方案或指导。我在哪里犯错误?
如果我们在vb.net模块中声明了global
变量,我们可以在项目中的任何地方使用该变量。如何在C#中访问全局变量,如在VB.net中?
我们如何在C#中实现同样的事情。
此前,当我们试图将vb.net项目转换为C#时,我们成功地删除了语法错误,但无法访问表单中的全局变量。
我需要一些解决方案或指导。我在哪里犯错误?
在C#中,您可以声明static字段。
public class Foo
{
public static string value;
}
并使用value
字段在任何地方使用ClassName.Member语法。
Foo.value="Hello!";
需要标记类'静态'以及使用提供的例子。 –
@Dmitry:因为他的一个成员是'static'字段,所以不需要设置class'static' –
@DmitryErokhin:实际上你不需要那样做 - 但是让类更加紧密地匹配VB.NET编译器会在您定义模块时执行。 –
应该工作相同。确保标记为静态。或者尝试在模块中使用静态属性而不是变量。
你不能声明公共变量,如果它是值类型,如int,字符串等
但是你可以用它在结构例如
可以近似VB.Net Module
功能通过将变量静态类的内部:
public static class Foo
{
public static string Bar { get; set; }
}
这将让您通过Foo.Bar
任何地方访问它的命名空间。
需要将每个表单转换为静态类??? –
不只是你需要全局访问的变量 –
但我想访问全球范围内使用的控件...请提供建议 –
您可能还希望考虑使用Singleton Pattern。这将您的变量初始化逻辑保存在一个合理的位置。它也很容易保护或跟踪变量的变化。
我认为你正在寻找类似的东西 http://stackoverflow.com/questions/4751013/c-global-module –