C#结构通过继承隐藏
本文关键字:继承 隐藏 结构 | 更新日期: 2023-09-27 18:00:07
C#4规范的第3.7.1.2节"通过继承隐藏"讨论了类或结构通过重新声明基类中使用的名称来隐藏成员的能力。
这一切都很好,但我认为structs的区别之一是它们不能被继承。
- 这是真的吗
- 如果没有,是否仍然可以使用structs执行成员隐藏以其他方式
- 从中还能学到什么吗
struct
仍然通过ValueType
继承自object
。您可以new
(隐藏(GetHashCode
、Equals
或ToString
方法,但这样做会非常愚蠢,因为这意味着您不能override
它,这意味着使用它们将始终是一个装箱调用(即使是作为约束的调用完成的(。
所以,按顺序:
- 这是真的吗:是的,确实不能从
struct
继承 - 有可能吗:除了上面提到的之外,唯一可以比较的就是显式接口实现
- 收集:规范并没有禁止你做一些愚蠢的事情