C#结构隐藏继承

Chu*_*ckT 2 c# struct

3.7.1.2隐藏通过继承的C#4说明书的讨论类或结构通过在基类中使用的重新声明的名称来隐藏成员的能力.

这一切都很好,但我认为结构的区别之一是它们不能被遗传.

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

Mar*_*ell 6

struct仍然继承自object,通过ValueType.你可以new(隐藏)一个GetHashCode,EqualsToString方法-然而,这将是令人难以置信的愚蠢这样做,因为这将意味着你不能override它,这意味着它永远是一个拳击呼叫使用它们(即使为完成受限呼叫).

所以,按顺序:

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

  • @ChuckT有三种调用方法的方法:"静态","虚拟"和"约束".约束适用于*instance*方法,并且大多数简单地表示"我不知道",并且最常用(但不是唯一地)通过*泛型* - JIT查看方法:如果它是一个类,它会执行虚拟电话; 如果它是*覆盖*方法的结构,它会进行静态调用; 如果它是*不覆盖*方法的结构,它会进行框+虚拟调用.很方便. (2认同)