2010-10-28 68 views
4

是否可以在C#中創建一個可變的全局變量?可能使全局變量。 C#

+0

[Visual C#中的全局變量]的可能重複(http://stackoverflow.com/questions/1806387/global-variables-in-visual-c) – 2010-10-28 13:28:47

回答

10

好吧,你可以做一個公共靜態變量:

public static class Globals 
{ 
    public static string Foo; 
} 

不過,我會強烈建議您做到這一點:

  • 變得不清楚是怎麼使用變量
  • 沒有線程安全
  • 它使測試變得痛苦(特別是如果你想平行測試)

我希望你努力設計遠離全局。如果你可以告訴我們更多關於你爲什麼認爲你想要一個全局變量,我們可能會給你一些建議,如何避免它在這種特殊情況下:)

2

不直接,你可以使用帶靜態屬性的靜態類(不推薦)或者使用均值來創建單例。更好的方法是使用某種依賴注入來提供值。

0

不,它不是。模擬/解決方法是某些類的公共靜態變量。 HTH

+0

P.S.學會接受答案 – 2010-10-28 13:24:29

0

不是。你可以創建一個新的類,將它稱爲任何你想要的,使其成爲靜態的,並且有一個靜態的公共屬性/變量。

你爲什麼要這樣做?這是一個常數?

你也可以使用(如果它是一個常數值)web/app配置文件中的appsettings節點。

0

您可以使用公共靜態變量創建一個公共類...但它確實不是一個好的編程習慣。

0

不是直接的,你可以使用一個帶有靜態屬性的靜態類(強烈不推薦)或者使用一個均值來創建一個單例(不推薦)。更好的方法是使用某種依賴性注入來提供值(推薦)。