雖然 GC 可以自動回收資源,但若在程式中產生過多的 reference type 實體(占用heap空間),配置以及銷毀這些物件還是需要時間來處理。因此必須有效的創建這些實體,避免非必要的產生。
在 C++ 程式中可使用 destructor 來釋放資源,而 C# 中則透過 GC(Garbage Collector) 來自動回收資源,GC 為 CLR 內的機制之一,凡是在 CLR 所運作中的程式都可稱為 managed code,不是在 CLR運作中的程式就稱為 unmanaged code(stream、與資料庫的連結、COM物件…等)。也就是說若是使用了 unmanaged code 後並沒有釋放資源,則會等到程式結束時才釋放。
yield 翻譯成中文有退讓、讓位的意思。以程式的觀點來看,它就是先把結果丟出去給外部處理,以實際範例說明:
有一內容為 1-10 的 int 集合,使用一般以及 yield 的方式取得其平方集合。
在 C# 中若要建立多個建構子,除了可以用 multiple overloads 之外還可使用 default parameter(C# 4.0後提供)
在 C# 中最常見的使用 singleton 方式為: