2011-06-12 19 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