【发布时间】:2012-04-27 20:46:56
【问题描述】:
我有一个类,它有许多属性,其中一个是对象,我们称之为ExtraData。这可以是三种不同类型中任何一种的对象,所有三种类型之间没有共享字段。
我是否应该创建一个所有三个对象类都实现的标记接口并使 ExtraData 属性成为该接口类型?我读过的所有内容都说要在 .NET 中避免这种情况,并尽可能使用自定义属性。如果我这样做,我会让 ExtraData 成为一个简单的对象并检查属性以确定它的类型吗?如果我想使用这些数据、检查属性并相应地进行转换,这似乎需要做很多额外的工作。
这是“不使用标记接口”规则的例外吗?还是我遗漏了一些明显的东西?
谢谢。
【问题讨论】:
-
一个标记接口仍然意味着大量的类型检查和强制转换来实际使用数据,不是吗?过去我使用
object并在其中放置自定义密封类,然后想要使用它的代码可以简单地检查给定类型。只有 1 次检查和 1 次施法,效果很好。
标签: .net interface marker-interfaces