在阅读本文以及一些示例后,我仍然不清楚全局变量的含义。那么它说你班上的私有变量是全局的吗?
http://www.c2.com/cgi/wiki?GlobalVariablesAreBad
所以有人可以用简单的语言向我解释这个背景。这是否意味着甚至是班级顶层的私人领域?我不清楚“全局变量”的定义,以便我可以区分我是否在我的课程中做了“坏事”。
答案 0 :(得分:11)
在C#中,全局变量的一个示例是公共类上的公共静态变量。整个程序可以读/写它,它也可以在线程之间共享。
答案 1 :(得分:5)
您班级中的私人字段通常称为“班级变量”。它不适用于您的应用程序,因为只有您的类才能访问它。
全局变量是一个变量,无论程序在什么范围内,程序中的任何内容都可以访问。
全局变量的示例类似于ASP.Net中的Application
对象(HttpApplication类的公共静态实例)。任何代码隐藏文件中的任何对象都可以访问Application
对象以查找该值。通常,将值存储到Application
对象是一个坏主意,除非您真正知道自己在做什么,原因是您链接的文章中提到的所有原因。
答案 2 :(得分:2)
没有。全局变量是整个程序可用的变量。私有成员变量实际上与全局变量相反。在C / C ++中,全局变量将是在函数或类声明之外声明的变量。在C ++和Java中,非常量的公共静态变量也将被视为全局变量,因为整个程序都可以访问它。
答案 3 :(得分:0)
在C#中,确实没有任何东西可以被称为“全局”变量。最接近的是公共静态变量;任何时候程序的所有部分都可以使用的东西。
答案 4 :(得分:0)
基本上还有其他机制可以导致全局变量的引入:
正如arcticle所说,最好避免它们。
答案 5 :(得分:0)
我认为Varialbes在类的顶部定义了“DIM”仍然是类范围而不是Global,但如果它们在类之上定义为“PUBLIC”或在“MODULE”中定义为“PUBLIC”,则它们可以是“GLOBAL”, GOOD你可以从ALL解决方案中获取这些变量,BAD,它们将留在MEMORY ..