我們都知道全局變量是可以避免的,但是將它們放入命名空間是一個解決方案還是另一種形式的相同問題?擁有像數組這樣的東西,任何人都可以在命名空間中訪問和更改它仍然很糟糕嗎?
是否有任何的替代品,當你有一個變量:命名空間中的變量如何比全局變量更好
- 這並不在現有的類屬
- 需要由一個以上的現有類使用
- 並不需要有一個實例(它們應該都是修改同一個)
命名空間使得更容易理解是否有必要使用像這樣的更多變量,所有這些都與相同的想法有關。他們還使得追蹤更容易。這些是唯一能讓他們比擁有全球性更好的東西嗎?我並不是在淡化他們的重要性,只是好奇而已。
思考這個問題,在C#全局靜態類成員基本上是這樣的情況。
編輯:終於製作了一個新的類畢竟(並通過它通過參考像正常一樣)。有可能會增長,所以我覺得這個班很好。另外寫出命名空間後,它只是感覺這種情況的一個可怕的解決方案。
「需要由多個現有類使用」 - 然後將實例傳遞給所有需要它的成員函數。 – 2014-01-26 17:12:23
另外請注意,有一個「經典」的坐席,其中一個全局變量不僅僅是必需的。例如:需要在不同調用之間重新生成信息的函數。這可以通過函數的局部靜態變量完美實現。 – Manu343726