【設計屬性】五行科系屬性第四篇 |產品屬性與設計屬性之研究 |屬性設計 |

【設計屬性】五行科系屬性第四篇 |產品屬性與設計屬性之研究 |屬性設計 |

此內 Pearson Education, Inc. 從 架構設計指導方針:可複使用 .NET 程式庫慣例、慣用語和模式第 2 版 可權列印。

該版於2008年出版,該書那後於第三版 全面修訂 。

此頁面某些資訊可能。

如果無法提供屬性 getter,請改為實作功能做為方法。

設計屬性 Play

它們應該視為智慧型欄位。

它們具有欄位呼叫語法,以及方法彈性。

✔️ 如果呼叫端應該變屬性值,請建立限取得屬性。

請記住,如果屬性類型是可變動參考類型,即使屬性是限 get,可以變屬性值。
設計屬性

❌ 請提供限設定屬性或屬性,而 setter 具有 getter 泛的存取範圍。

例如,請搭配公用 setter 和受保護 getter 使用屬性。

如果無法提供屬性 getter,請改為實作功能做為方法。

請考慮使用 來啟動方法名稱 Set ,並遵循您命名屬性內容。

例如,有一個稱為 SetCachePath 方法, AppDomain 而不是具有稱為 CachePath 限集合屬性。

✔️ DO 為所有屬性提供合理預設值,確保預設值會造成安全性漏洞或沒有效率程式碼。

✔️ DO 允許任何順序設定屬性,即使這會導致物件狀態。
設計屬性

有兩個或多個屬性某個點關聯,其中一個屬性某些值可能,因為物件上其他屬性值可能。

這種情況下,於狀態產生例外狀況應該延後,直到物件實際使用關聯屬性。

例如,字串是字元集合,而 上 System.String 索引子加入存取其字元。

設計屬性 Play

延伸閱讀…

五行科系屬性第四篇

屬性設計- Framework Design Guidelines

屬性 getter 應該是作業,而且應該有任何前置條件。

如果 getter 可以擲回例外狀況,可能應該設計方法。

請注意,此規則適用於索引子,我們預期例外狀況是驗證引數結果。

索引屬性是具有參數屬性,而且可以使用類似於陣列索引語法來呼叫。
設計屬性

索引屬性稱為索引子。

索引子應該只在提供邏輯集合中專案存取權 API 中使用。

例如,字串是字元集合,而 上 System.String 索引子加入存取其字元。

延伸閱讀…

產品屬性與設計屬性之研究__台灣博碩士論文知識加值系統

設計行業五行屬性?

如果設計需要多個參數,請考慮屬性是否代表邏輯集合存取子。

如果沒有,請改用 方法。

請考慮使用 或 Set 啟動方法名稱 Get 。

如果設計需要其他類型參數,請評估 API 是否代表邏輯集合存取子。

如果沒有,請使用 方法。

請考慮使用 或 Set 啟動方法名稱 Get 。

✔️ 請索引屬性使用名稱,除非有名稱 Item (例如,請參閲 上 Chars[]System.String 屬性)。

C# 中,索引子預設會命名為 Item。

IndexerNameAttribute可用來自訂此名稱。