2

C# 4 规范的第3.7.1.2 节通过继承隐藏讨论了类或结构通过重新声明在基类中使用的名称来隐藏成员的能力。

这一切都很好,但我认为结构的区别之一是它们不能被继承。

  • 这是真的?
  • 如果没有,是否仍然可以通过其他方式使用结构执行成员隐藏?
  • 还有什么可以从中收集到的吗?
4

1 回答 1

6

struct仍然继承自object, via ValueType。您可以new(隐藏) a GetHashCodeEqualsorToString方法 - 但是,这样做会非常愚蠢,因为这意味着您不能override这样做,这意味着使用它们将始终是一个拳击调用(即使作为受约束的方式完成)称呼)。

所以,按顺序:

  • 这是真的吗:是的,你不能从一个struct
  • 是否有可能:除了上述之外,唯一可比较的是显式接口实现
  • 收集:规范不允许你做愚蠢的事情
于 2013-02-19T04:33:53.383 回答