利用静态构造函数的机制,缓存数据
利用静态构造函数的机制,缓存数据。
public static class DataCache { static DataCache() { // 利用静态构造函数的机制,第一次加载所有数据 // 当调用DataCache时,第一次会执行此处code,此处code可初始化数据,以后则不会调用此处code,已达到缓存数据效果。 // 如果此处不写代码,也没关系,比如其他地方调用GetAllCategories(),那么第一次会初始化_all,后续则直接用_all,不会再初始化。 } private static List<int> _all = null; private static object _locker = new object(); public static List<int> GetAllCategories() { if (_all == null) { lock (_locker) { if (_all == null) { //从数据库中获取所有数据 _all = new List<int>() { 1, 2 }; } } } return _all; } public static void ClearCache() { _all = null; } }
工欲善其事,必先利其器。