C#中的延时加载Lazy(Of T)
.Net提供了一个叫Lazy<T>的对象,可以让我们很方便的延时创建大型或消耗资源的对象,可以很好的提高应用程序的性能。
如何实现呢?看下面代码:
class Program { static void Main(string[] args) { Lazy<Test> lazy = new Lazy<Test>(); //封装要延时加载的对象 Console.WriteLine("创建Lazy对象"); Console.WriteLine("是否创建对象:" + lazy.IsValueCreated); lazy.Value.Run(); //调用对象中的方法 } } public class Test { public Test() { Console.WriteLine("创建Test对象"); } public void Run() { Console.WriteLine("跑!"); } }
运行结果:
默认设置下,这个类的所有成员都是线程安全的。我们可以很方便的使用这个类实现对某个对象的延迟加载。