国产午夜精品一区二区三区不-国产午夜精品一区二区三区不卡-国产午夜精品一区二区三区极品-国产午夜精品一区二区三区老-国产午夜精品一区二区三区漫-国产午夜精品一区二区三区嫩草

聊城網站制作公司,聊城網站建設,聊城網站優化,聊城網絡公司,聊城網站推廣,聊城網站運營,聊城網絡運營,聊城搜索引擎優化,聊城網頁設計,聊城網站制作
 
 
公司擁有五年的網站建設經驗,專業網站制作,推廣及網站優化,有大量優秀客戶案例
網站建設 | 設為首頁 | 加入收藏 | 聯系我們  
公告:熱烈慶祝聊城精英網絡2010版官方網站改版成功!
當前位置 :首頁 > 網頁知識  

在Framework4.0中如何實現延遲加載

http://m.zjgjyh.cn   2011-8-31 8:59:34 來源:聊城精英網絡 作者:精英網絡   人氣:

Framework4.0提供了一個包裝類 Lazy,可以輕松的實現延遲加載。

  1. ///這行代碼表明:要創建一個延遲加載的字符串對象s  
  2. ///原型為LazyT> 對象名=new LazyT>(FunT>)  
  3. ///采用泛型委托進行構造,實例化此委托時要求必須是返回值T類型的方法  
  4. ///如在本例中,T為string,則TestLazy.GetString方法的返回值必須也是string類型  
  5. Lazystring> s = new Lazystring>(TestLazy.GetString);  

本例中TestLazy.GetString()方法如下示:

  1. public class TestLazy    
  2. {    
  3. public static string GetString()    
  4. {    
  5. return DateTime.Now.ToLongTimeString();    
  6. }   
  7. }  

可以通過IsValueCreated屬性來確定對象是否已創建,通過Value屬性來獲取當前對象的值。

  1. Console.WriteLine(s.IsValueCreated);//返回False  
  2. Console.WriteLine(s.IsValueCreated);//返回True 

下面經出完整代碼,以供測試:

  1. class Program  
  2. {  
  3. static void Main(string[] args)  
  4. {  
  5. ///這行代碼表明:要創建一個延遲加載的字符串對象s  
  6. ///原型為Lazy 對象名=new Lazy(Fun)  
  7. ///采用泛型委托進行構造,實例化此委托時要求必須是返回值T類型的方法  
  8. ///如在本例中,T為string,則TestLazy.GetString方法的返回值必須也是string類型  
  9. Lazy s = new Lazy(TestLazy.GetString);  
  10. Console.WriteLine(s.IsValueCreated);//返回False  
  11. Console.WriteLine(s.IsValueCreated);//返回True  
  12. }  
  13. }  
  14. public class TestLazy  
  15. {  
  16. public static string GetString()  
  17. {  
  18. return DateTime.Now.ToLongTimeString();  
  19. }  
  20. }  

下面再用一個例子,演示延遲加載:

在這個例子中,使用了BlogUser對象,該對象包含多個Article對象,當加載BlogUser對象時,Article對象并不加載,當需要使用Article對象時,才加載。

  1. class Program  
  2. {  
  3. static void Main(string[] args)  
  4. {  
  5. BlogUser blogUser = new BlogUser(1);  
  6. Console.WriteLine("blogUser has been initialized");  
  7. {  
  8. Console.WriteLine(article.Title);}  
  9. }  
  10. }  
  11. public class BlogUser  
  12. {  
  13. public int Id { getprivate set; }  
  14. public Lazy> Articles { getprivate set; }  
  15. public BlogUser(int id)  
  16. {  
  17. this.Id = id;  
  18. Articles =new Lazy>(()=>ArticleServices.GetArticesByID(id));  
  19. Console.WriteLine("BlogUser Initializer");  
  20. }  
  21. }  
  22. public class Article  
  23. {  
  24. public int Id { getset; }  
  25. public string Title{get;set;}  
  26. public DateTime PublishDate { getset;}  
  27. public class ArticleServices  
  28. {  
  29. public static List GetArticesByID(int blogUserID)  
  30. {  
  31. List articles = new List {  
  32. new Article{Id=1,Title="Lazy Load",PublishDate=DateTime.Parse("2011-4-20")},  
  33. new Article{Id=2,Title="Delegate",PublishDate=DateTime.Parse("2011-4-21")},  
  34. new Article{Id=3,Title="Event",PublishDate=DateTime.Parse("2011-4-22")},  
  35. new Article{Id=4,Title="Thread",PublishDate=DateTime.Parse("2011-4-23}  
  36. };  
  37. Console.WriteLine("Article Initalizer");  
  38. return articles;  
  39. }  

運行結果如圖示:

運行結果

最后說一下,延遲加載主要應用場景:

當創建一個對象的子對象開銷比較大時,而且有可能在程序中用不到這個子對象,那么可以考慮用延遲加載的方式來創建子對象。另外一種情況就是當程序一啟動時,需要創建多個對象,但僅有幾個對象需要立即使用,這樣就可以將一些不必要的初始化工作延遲到使用時,這樣可以非常有效的提高程序的啟動速度。

這種技術在ORM框架得到了廣泛應用,也并非C#獨有的,比如Java里的Hibernate框架也使用了這一技術。

專業設計團隊
滿足您的各種設計要求
實力程序開發團隊
為您定制各種程序模塊
后臺管理高效安全
方便更新上傳網站資料
全球高速訪問
無盲區、定制異地備份
專業客服團隊
解決一切使用難題
贈送大容量空間郵箱
免費優化推廣
   
關于我們 | 工作機會 | 付款方式 | 網站制作 | 網頁制作 | 網頁設計 | 網絡公司 | 聯系我們 | 網站地圖
版權所有:聊城精英網絡科技有限公司 © 2005-2010 All Rights Reserved.
咨詢專線:0635-6950368 技術專線:15192175820 在線QQ:312817927 1485871644
地址:聊城市閘口科技市場 郵編:252000 蘇ICP備10112026號
主站蜘蛛池模板: 91麻豆精品在线观看 | 亚洲无码在线影院 | 风韵多水的老熟妇 | 亚洲一级毛片手机播放 | 日韩不卡在线视频 | 中文字幕人妻无码乱精品 | 91免费无码国产在线观看 | 久久人妻少妇嫩草av蜜桃 | 国产老师开裆丝袜喷水漫画 | 一区二区视频在线观看高清视频在线 | 艳妇乳肉豪妇荡乳在线观看 | av亚洲国产小电影 | 欧美成人猛交69 | 草草影院CCYY国产日本欧美 | 99精品国产一区二区三区在线观看 | 国产日韩欧美精品 | 国产婷婷午夜无码A片 | 国产aⅴ无码精品片免费看 国产aⅴ片九九精品国产 | 亚洲av无码成人精品区 | 午夜网未来影院 | 一区二区视频传媒有限公司 | 无码人妻毛片丰满熟妇区毛片国产 | 亚洲H成年动漫在线观看不卡 | 免费观看成人欧美www色 | 国产日韩aⅴ无码一区二区三区 | 国产精品自产拍在线观看中文 | 人妻无码诱惑精品一区二区 | 免费看999永久A片视频 | 午夜精品一区二区三区在线 | 亚洲麻豆av成本人无码网站 | b站永久免费在线观看 | 精品国产Aⅴ无码久久久社区 | 91性高湖久久久久久久久久久国产经典视频 | 国产精品久久国产精品99 gif | 亚洲无码午夜激情在线观看 | 伊人久久大香线蕉综合色狠狠 | 欧美日韩视频在线第一区 | 国产在线视频一区二区高清乱码99 | 亚洲国产欧美视频 | 国产在线无码视频一区二区三区 | 一区二区三区视频 |