2011-06-12 18 views
0

静态变量。在.NET中,与编译为C++或Fortran等本机语言的全局变量的工作方式不同?为什么?如何在.Net和C++中使用静态变量?

+2

你能详细说明你所指的精确差异吗? – DuckMaestro 2011-06-12 00:39:32

+0

我想知道.Net中的静态变量与C++之类的语言中的全局变量之间的基本差异 – 2011-06-12 00:48:54

回答

1

没有语义上的差异。静态字段只是全局变量的一个奇特名称。

+0

+1因为我共享类似的情感;-)但是,有些人更喜欢争论该静态变量“不是全局变量”,因为它们绑定到特定的类/名称空间。 – 2011-06-12 01:10:34

+0

@pst:在C++中,您可以将全局变量放在名称空间中,这实现了几乎相同的功能。 – 2011-06-12 01:11:49

+0

* public * static字段只是一个带有花哨名称的全局变量。 – 2011-06-12 01:24:13

1

全局变量通常可以不受限制地访问。这也是他们经常被认为是邪恶的原因,因为您无法谨慎保持代码的其他部分不被误用,并且有关此变量的错误可能在代码中的任何位置。

.net中的静态变量(或字段),但确实允许更多的保护。您可以将其声明为private或protected,以限制可以访问或更改它的代码。这将使调试变得更容易,因为当发生错误时,代码中可以负责的地方少得多。

+0

访问修饰符的保护程度不如指南 – 2011-06-12 01:24:50