C#成員變量初始化; 最佳實踐?在聲明上初始化類成員變量是否更好?private List<Thing> _things = new List<Thing>();private int _arb = 99;還是在默認構造函數中?private List<Thing> _things;private int _arb;public TheClass(){
_things = new List<Thing>();
_arb = 99;}這僅僅是一種風格問題,還是存在性能權衡,這種或那種方式?
3 回答

FFIVE
TA貢獻1797條經驗 獲得超6個贊
字段初始化程序的一個主要限制是無法將它們包裝在try-finally塊中。如果在字段初始值設定項中拋出異常,則將放棄在先前初始值設定項中分配的任何資源; 沒有辦法阻止它。如果笨拙地通過讓受保護的基礎構造函數通過引用接受IDisposable并將其指向自身作為其第一個操作,則可以處理構造中的其他錯誤。然后可以避免調用構造函數,除非通過工廠方法,在異常情況下將調用部分創建的對象上的Dispose。如果主要類構造函數在“走私”對新對象的引用后失敗,則此保護將允許清除在派生類初始值設定項中創建的IDisposable。不幸的是,那里'
- 3 回答
- 0 關注
- 630 瀏覽
添加回答
舉報
0/150
提交
取消