C 基礎概念之延遲載入

2022-03-20 11:35:16 字數 1030 閱讀 9075

延遲載入,亦稱延遲例項化,延遲初始化等,主要表達的思想是,把物件的建立將會延遲到使用時建立,而不是在物件例項化時建立物件,即用時才載入。這種方式有助於提高於應用程式的效能,避免浪費計算,節省記憶體的使用等。針對於這種做法,似乎稱之為即用即建立更為合適些。

先來看一下在framework4.0中如何實現延遲載入。

framework4.0提供了乙個包裝類lazy,可以輕鬆的實現延遲載入。

字串物件延遲載入完整示例

class

program

}public

class

testlazy

}

可以通過isvaluecreated屬性來確定物件是否已建立,通過value屬性來獲取當前物件的值。

下面再用乙個例子,演示延遲載入。

在這個例子中,使用了bloguser物件,該物件包含多個article物件,當載入bloguser物件時,article物件並不載入,當需要使用article物件時,才載入。

**

包含子物件的延遲載入

class

program

}}

public

class

bloguser

public lazy> articles

public bloguser(int

id)

}public

class

article

public

string title

public datetime publishdate

}public

class

articleservices

,new article,

new article,

new article

};console.writeline(

"article initalizer");

return

articles;

}}

**

JPA之立即載入與延遲載入

test public void test 根據id查詢客戶 find 立即載入 1 查詢的物件就是當前客戶物件本身 2 在呼叫find方法的時候,就會傳送sql語句查詢資料庫。getrefrence 延遲載入 懶載入 1 獲取的物件是乙個動態 物件 2 在呼叫getrefrence方法的時候,不會...

hibernate之4 延遲載入

延遲載入 只有當使用以實體物件的屬性 除主鍵屬性外 時,才會傳送查詢語句到資料庫 get不支援延遲載入 test public void gettest finally 結果 hibernate select student0 student id as student1 0 0 student0 ...

Linq之延遲載入特性

寫在前面 系列文章 延遲載入 總結上篇文章介紹了linq中常見的幾個關鍵字,並列舉了幾個例子,算是對linq如何使用有了初步了解。上篇文章中也提到了,能夠使用linq的場合有乙個要求 實現ienumerable泛型介面,或者型別相容 可以通過cast方法轉換,比如arraylist linq之lam...