2012-04-16 61 views
2

我有一個有很多屬性的類,其中一個屬性是一個對象,我們稱它爲ExtraData。這可以是三種不同類型中的任何一種的對象,三者之間沒有共享字段。我應該使用標記接口嗎?

我應該創建一個標記接口,使所有三個對象類都實現並使該ExtraData屬性成爲該接口類型嗎?我讀過的所有東西都說在.NET中避免這種情況,並儘可能使用自定義屬性。如果我這樣做,我會讓ExtraData成爲一個簡單的Object並檢查屬性以確定它的類型嗎?這看起來像是很多額外的工作,如果我想使用這些數據,檢查屬性並進行相應的轉換。

這是「不使用標記接口」規則的例外嗎?還是我錯過了明顯的東西?

謝謝。

+0

標記接口仍然意味着無數的類型檢查和強制轉換以實際使用數據,不是嗎?在過去我使用'object'並在裏面放置了自定義的密封類,那麼想要使用它的代碼可以簡單地檢查給定的類型。只有1個支票和1個演員,效果不錯。 – 2012-04-16 13:59:59

回答

1

你的意圖不明確。爲了回答你的實際問題,使用類似這樣的界面是完全可以接受的,並且,如果你需要將財產的價值限制爲少數類型,那麼忽略該方法的智慧,這似乎是一種合理的方法。

但實際上,可能有更好的方法,但沒有關於你在做什麼的更多信息,我不能提出任何建議。