我有继承自Dictionary的类myCollection。 想在myCollection中隐藏add方法。 使用私有新修饰符,但仍然可见。 这不可能吗?
基类
public void Add(TKey key, TValue value) { Insert(key, value, true); }
MyCollection的
private new void Add(string key, MyOtherClass myClass) { base.Add(key, myClass); }
答案 0 :(得分:7)
不,这是不可能的。
您无法更改继承成员的可访问性。
您可以使用合成而不是继承,只展示您想要的功能(通过委托对合成对象的调用)。如果您依赖代码中的其他地方的继承链,这可能不是一个选项。
答案 1 :(得分:0)
它没有被隐藏,因为Add in baseclass的方法签名与mycollection类中的方法不匹配。