2012-10-23 40 views
3

使用Microsoft.NET提供的用於替代用途的屬性是否合適?還是應該創建我自己的屬性?我是否應該爲其他原因重用Microsoft.NET屬性,還是應該創建自己的屬性?

例如,我經常看到人們使用DescriptionAttribute作爲「友好名稱」進行枚舉。雖然,我的理解是,DescriptionAttribute打算由IDE使用,因此。

另一個例子是使用DefaultAttribute通過反射,在施工期間設置所有屬性的默認值。

那麼,在最佳實踐中,以通常不打算的方式重用屬性是否可以接受?

回答

1

就我個人而言,我不重複使用屬性。我創建了我自己的定製的。

這會阻止我使用屬性,然後在將來有人使用我的類時,會出現意想不到的行爲,因爲我沒有預料到。

1

DefaultAttribute和DescriptionAttribute由「propertygrid」控件使用,該控件是Visual Studio設計器中使用的控件。也可以在您自己的代碼中使用此控件,然後使用這些屬性有意義

0

使用MS提供的定義,並在它們不符合官方定義時創建自己的定義。如果有人來閱讀你的代碼,並且沒有閱讀20頁的手冊「我們對官方屬性的另一種用法」,他可能會聽起來很愚蠢(不是說創建一個新的代碼真的很長)都對發生了什麼感到困惑。

除此之外,很多.NET類都檢查這些屬性。如果你濫用它們,你可能會很怪異。

0

微軟自己發佈的最佳實踐在這個主題上沒有什麼可說的,DescriptionAttribute MSDN Page上的代碼使用清楚地表明,這種內置屬性以其他方式使用。我通常認爲給與你的項目相關的東西增加額外的含義是非常危險的。這被稱爲「部落知識」,是誤解在與他人合作時開始的主要方式之一。

如果你有一個被.NET框架覆蓋的用例,真棒 - 你應該首先使用它。但如果你不確定,最好是簡單地創建你自己的。

相關問題