程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> 關於C# >> C#的Lazy Loading問題

C#的Lazy Loading問題

編輯:關於C#

In some Senario, may only need to init the object when using ,so lazyLoading will be a good choice.

Sample Class:

public class Product  
    {  
        public Product()  
        {  
            //do many things here ,will take long time  
            Thread.Sleep(1000);  
        }  
        public int Id { get; set; }  
        public string Name { get; set; }  
        public string TypeCode { get; set; }  
    }

Sample class test lazy loading:

public class LazyLoadingTest  
    {  
        public Product GetProduct(int id, string name, string typecode)  
        {  
            return new Product()  
                {  
                    Id = id,  
                    Name = name,  
                    TypeCode = typecode  
                };  
        }  
     
     
        public Lazy<Product> GetLazyProduct(int id, string name, string typecode)  
        {  
            return new Lazy<Product>(() =>  
                                     new Product() {Id = id, Name = name, TypeCode = typecode});  
        }  
    }

Test code:

var llt = new LazyLoadingTest();  
            var p1 = llt.GetProduct(1, "tablet", "x101");  
//As Product is not lazy loading obj , so here constructure will be created.  
     
     
            var p2 = llt.GetLazyProduct(2, "computer", "y202");  
     
     
            var productName1 = p1.Name;  
            var productName2 = p2.Value.Name;  
// As P2 is a lazy product object , only when P2 object is using , there is a construction here .

URL:http://www.bianceng.cn/Programming/csharp/201410/45753.htm

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved