我想知道是否有办法克服这种情况:
我有一个带有静态变量的静态类,假设
static string[] Cities = GetCities();
并且
GetCities
从数据库中获取所有城市。问题是GetCities
出现错误,因为数据服务器有时不可用,即使服务器再次可用,该错误也不会消失。我认为这是因为可变城市仅创建一次...
最佳答案
我认为这是因为可变城市仅创建一次
这是正确的:只有GetCities()
个调用;如果失败,将没有其他呼叫。若要解决此问题,请将Cities
更改为只读属性,并在获取结果时缓存GetCities()
的结果。
static string[] cachedCities = null;
public static string[] Cities {
get {
return cachedCities ?? (cachedCities = GetCities());
}
}