2017-11-18 126 views
1

如何重新開始所有屬性的靜態類在C#

public static class MySampleClass 
 
{ 
 
    public static string sampleProperty1 
 
    { 
 
      get { return GetValue("sampleProperty1"); } 
 
    } 
 
    public static string GetValue(string Key) 
 
    { 
 
     // Here is the code to get value from table based Key. 
 
      return Key; 
 
    } 
 
}

我有像SampleProperty1 MySampleClass許多靜態屬性... 一旦我的屬性設置的值,我不能將值重置爲相同的屬性。

+0

這是哪一種語言? –

+0

c#,Mvc應用程序。 –

+0

你如何爲你的房產設置價值?它看起來像sampleProperty1將始終具有值「sampleProperty1」。 GetValue的目的是什麼? – dsolimano

回答

1

你可能不知道。靜態屬性幾乎每次都是代碼異味,尤其是可變的。使它們成爲非靜態的並使用你的類的實例。

在這種情況下,您可以實現此類,因爲每個新實例都使用某個table的新值部分進行初始化。而且您不會遇到重新初始化的問題 - 只需創建此類型的新實例並使用新的新值進行初始化即可。


您當前的實現並不需要重新初始化 - 的MySampleClass屬性總是從table得到實際值。如果table的實例已過時,請換新的一個,並用新的一個替換舊的 - 之後MySampleClass的屬性將返回新值。