Framework4.0提供了一个包装类 Lazy<T>,可以轻松的实现延迟加载。

📅 2026/7/4 23:19:13
Framework4.0提供了一个包装类 Lazy<T>,可以轻松的实现延迟加载。
///这行代码表明要创建一个延迟加载的字符串对象s///原型为LazyT 对象名new LazyT(FunT)///采用泛型委托进行构造实例化此委托时要求必须是返回值T类型的方法///如在本例中T为string则TestLazy.GetString方法的返回值必须也是string类型Lazystring s new Lazystring(TestLazy.GetString);本例中TestLazy.GetString()方法如下示public class TestLazy{public static string GetString(){return DateTime.Now.ToLongTimeString();}}可以通过IsValueCreated属性来确定对象是否已创建通过Value属性来获取当前对象的值。Console.WriteLine(s.IsValueCreated);//返回FalseConsole.WriteLine(s.Value); //返回s的当前值Console.WriteLine(s.IsValueCreated);//返回True下面经出完整代码以供测试字符串对象延迟加载完整示例下面再用一个例子演示延迟加载。在这个例子中使用了BlogUser对象该对象包含多个Article对象当加载BlogUser对象时Article对象并不加载当需要使用Article对象时才加载。包含子对象的延迟加载运行结果如图示