2009-06-10 37 views
24

場景: 我有一個基類「MyBase」。 我有一個自定義屬性「MyAttrib」部隊使用歸因

有了我這樣做:

[MyAttrib(1234)] 
class MyClass : MyBase() 
{ 
MyClass() 
{ 
} 
} 

問: 我可以以任何方式力類從MyBase inherting有屬性MyAttrib?

回答

25

沒有,有沒有辦法讓編譯器需要在C#中的屬性。你確實有一些其他的選擇可供你使用。你可以編寫一個反映程序集中所有類型的單元測試並檢查屬性。但不幸的是,編譯器無法強制使用屬性。

+0

見@弗雷德裏克 - gheysels – devinbost 2016-08-25 17:23:16

2

我所做的就是必須在MyBase類的抽象屬性或方法,使繼承的類被迫覆蓋(並因此實現)這個屬性/方法。

不一樣乾淨的屬性,但不是在我看來,在運行時檢查好。

+0

下面的答案,我認爲這將是更清潔,它是否適合的場景。 – 2015-11-20 16:35:15

0

如果你想確保一個基本類型或接口的所有類有一個屬性,你可以添加一個簡單的單元測試是獲取所有派生類,並聲稱他們每個人都有的屬性,加上單位的結果測試你的進一步構建過程。