1. Genel Bakış
Bir nesne oluşturmak çok fazla tüketim gerektirir ve bu nesne çalışma sırasında kullanılmayabilir, bu yüzden her zaman nesneyi yaratmaktan kaçınmak için tembel başlatma (tembel instansasyon olarak da adlandırılır) devreye girer.
Gecikmeli başlatma ise . NET 4.0, öncelikle performansı artırmak, israf edilen hesaplamayı önlemek ve program bellek gereksinimlerini azaltmak için kullanılır. Buna talep üzerine yükleme de denir.
2. Temel dilbilgisi
3. Örneklerle uygulayın
Aşağıdaki kodla bir Öğrenci sınıfı oluşturarak başlayın:
Aşağıdaki kodla bir konsol programı oluşturun:
Hata ayıklama için kırılma noktasını belirledikten sonra, yeni bir noktadan sonra Student'in IsValueCreated değerinin yanlış olduğunu ve değerin değerinin null olduğunu fark ettim
Sonra, Name özelliği çağrıldığında, öğrencinin IsValueCreated değerinin değeri doğrudur ve değer değeri artık null değildir
Koşu sonucu:
Öğrencinin yalnızca İsim özniteliği çıktı olduğunda başlangıllaştırıldığı, yani ilk kez kullanıldığında başlangıllaştırıldığı ve tüketimi azaltma amacına ulaştığı görülebilir.
Bu örnek basit ve <T>tembel kullanımının en temel yoludur. Ayrıca,<T> Lazy'nin aşırı yükleme fonksiyonu olan Lazy<T> (Func<T>) özelliğini belirlemek için bir delege göndererek tembel başlatma nesnesinin özellik değerini ayarlayabiliriz.
Koşu sonucu:
Not: Lazy<T> nesne başlatma varsayılan olarak iş parçacığı güvenlidir ve çok iş parçacıklı bir ortamda,<T> Lazy nesnesinin Value özelliğine erişen ilk iş parçacığı, Lazy<T> nesnesini başlatır ve sonraki erişim iş parçacıkları ilk kez başlatılan verileri kullanır.
4. Uygulama senaryoları
Oluşturulması gereken çok fazla yük gerektiren bir nesne var ve program onu kullanmayabilir. Örneğin, programınız başlatıldığında birkaç nesne örneğini yüklüyor, ancak sadece birkaç örnek hemen çalıştırılıyor. Gereksiz nesnelerin başlatılmasını gerekli nesneler oluşturulana kadar geciktirerek programınızın başlatma performansını artırabilirsiniz.
|