我想知道是否有办法克服这种情况:

我有一个带有静态变量的静态类,假设

static string[] Cities = GetCities();


并且GetCities从数据库中获取所有城市。问题是GetCities出现错误,因为数据服务器有时不可用,即使服务器再次可用,该错误也不会消失。
我认为这是因为可变城市仅创建一次...

最佳答案

我认为这是因为可变城市仅创建一次


这是正确的:只有GetCities()个调用;如果失败,将没有其他呼叫。若要解决此问题,请将Cities更改为只读属性,并在获取结果时缓存GetCities()的结果。

static string[] cachedCities = null;
public static string[] Cities {
    get {
        return cachedCities ?? (cachedCities = GetCities());
    }
}

10-04 23:28