我有一个具有许多属性的类,其中一个属性是对象,我们称之为ExtraData。这可以是三种不同类型中的任何一种的对象,在这三种类型之间没有共享字段。
我应该创建一个标记接口,所有三个对象类都实现并使ExtraData属性属于该接口类型吗?我读过的所有内容都说要在.NET中避免这种情况,并尽可能使用自定义属性。如果我这样做,我会将ExtraData作为一个简单的对象并检查属性以确定它的类型吗?如果我想使用这些数据,检查属性并相应地进行投射,这似乎是一项额外的工作。
这是“不使用标记接口”规则的例外吗?或者我错过了一些明显的东西?
感谢。
答案 0 :(得分:1)
目前还不清楚你的意图是什么。要回答你的实际问题,使用这样的界面是完全可以接受的,并且无视方法的智慧,如果你需要将属性的值限制为少数几种类型,这似乎是一种合法的方法。
但实际上,可能有更好的方法,但如果没有关于你正在做什么的更多信息,我就无法提出任何建议。