单例模式 LAZY<T>
单例模式 LAZY<T>:
interface IDatabase { int GetConnection(string name); } class FileDatabase : IDatabase { private Dictionary<string, int> dic = new Dictionary<string, int>(); private FileDatabase() { count++; Console.WriteLine("Read text."); dic = File.ReadAllLines("Demo.txt").Batch(2).ToDictionary( list => list.ElementAt(0).Trim(), list => int.Parse(list.ElementAt(1).Trim()) ); } public int GetConnection(string name) { return dic[name]; } public int GetDictionaryCount() { return dic.Count; } private static Lazy<FileDatabase> database = new(() => { Console.WriteLine("Load...");return new FileDatabase(); }); public static FileDatabase Instance => database.Value; private static int count; public static int Count => count; }