屬性是類別對外介面,資料成員是內部實現。暴露內部實現不利未來變更。
const 編譯期替換為常值,跨組件參考會硬編碼值,更新需重新編譯所有參考組件。readonly 執行期評估,彈性較高,效能略低。const 值必須編譯期決定,不能用 new 賦值。is/as 為動態轉換,失敗不拋例外;as 回傳 null,效能較好。is 可判斷值型別,as 不行。Type.IsAssignableFrom()(支援介面)與 Type.IsSubclassOf()(不支援介面)。#if 可能導致空方法呼叫效能問題與程式碼相依性。[Conditional("DEBUG")] 的方法永遠編譯進組件,條件不符時編譯器移除所有呼叫點。void,否則程式行為在不同建置下不一致。範例:將 Customer 陣列繫結至 ComboBox,若未覆寫 ToString() 需手動建立顯示字串清單;覆寫後可直接繫結物件陣列,ComboBox 自動呼叫 ToString() 顯示。