【发布时间】:2014-10-08 02:46:00
【问题描述】:
基地:
public abstract class systemClient : IDisposable
{
public static List<systemClient> Collection = new List<systemClient>();
[...]
}
派生类
public class station : systemClient
{
[...]
}
在此设置中,我可以访问station.Collection。
问题是:
有没有办法隐藏station.Collection?
【问题讨论】:
-
如果你能展示一个真实的例子会有所帮助。在您的示例中,
example无论如何都是隐式私有的...如果您的示例遵循 .NET 命名约定,这也会有所帮助.. -
静态成员不会被继承。是编译器允许你通过继承类调用静态字段,但技术上是不正确的。
-
@Maarten 从(除其他外)这个问题stackoverflow.com/questions/2281775/… 看来这是有意的行为。这也得到了它编译和运行良好这一事实的支持。
-
@Mark 您提到的问题的答案并不明确恕我直言。另外,恕我直言,这是一个编译器技巧,而不是继承,请参阅stackoverflow.com/a/2288663/261050。此外,其他问题,例如stackoverflow.com/questions/4945439/…,对“功能”并不那么积极。
-
@Maarten 对我来说更像句法糖精。我发现有用的 tbh 更令人困惑。
标签: c# .net inheritance static language-design