2017-11-18 124 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的属性将返回新值。