首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

Effective C#:使用成員初始化語句 (1) - 物件建構流程與最佳實踐

     編輯:關於C語言

物件建構流程

類型第一個實例建構步驟:

  1. 配置靜態成員記憶體(初始為 0)
  2. 執行靜態成員初始化語句
  3. 執行基類靜態建構函式
  4. 執行本類型靜態建構函式
  5. 配置執行個體成員記憶體(初始為 0)
  6. 執行成員初始化語句
  7. 執行基類建構函式
  8. 執行本類型建構函式

後續實例跳過步驟 1-4,直接從步驟 5 開始。

推薦使用成員初始化語句的理由

  • 更早初始化:成員初始化先於建構函式,有利後續使用
  • 避免重複:新增成員時,初始化寫在定義處,減少建構函式間不一致導致成員未初始化
  • 程式碼簡潔:將初始化邏輯從建構函式抽離

範例

public class MyList
{
    private ArrayList _list = new ArrayList(); // 成員初始化
}

三種不適用成員初始化的場景

1. 指派 0 或 null

成員配置記憶體時已自動初始化為 0/null,顯式指派只會增加指令、影響效率。

2. 依建構函式參數決定初始化方式

public class MyList
{
    private ArrayList _list = new ArrayList(); // 預設初始化
    public MyList() { }
    public MyList(int nSize) 
    { 
        _list = new ArrayList(nSize); // 重新指派,產生短暫臨時物件
    }
}

建構函式中重新初始化會產生額外物件,此情況應在建構函式中處理。

3. 初始化相依於其他成員或複雜邏輯

需在建構函式中按順序初始化,或使用 Lazy 初始化模式。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved