C#结构通过继承隐藏

本文关键字:继承 隐藏 结构 | 更新日期: 2023-09-27 18:00:07

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

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

  • 这是真的吗
  • 如果没有,是否仍然可以使用structs执行成员隐藏以其他方式
  • 从中还能学到什么吗

C#结构通过继承隐藏

struct仍然通过ValueType继承自object。您可以new(隐藏(GetHashCodeEqualsToString方法,但这样做会非常愚蠢,因为这意味着您不能override它,这意味着使用它们将始终是一个装箱调用(即使是作为约束的调用完成的(。

所以,按顺序:

  • 这是真的吗:是的,确实不能从struct继承
  • 有可能吗:除了上面提到的之外,唯一可以比较的就是显式接口实现
  • 收集:规范并没有禁止你做一些愚蠢的事情