使用new修饰符隐藏基类public方法

时间:2011-08-07 19:07:41

标签: c#

我有继承自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);    
    }

2 个答案:

答案 0 :(得分:7)

不,这是不可能的。

您无法更改继承成员的可访问性。

您可以使用合成而不是继承,只展示您想要的功能(通过委托对合成对象的调用)。如果您依赖代码中的其他地方的继承链,这可能不是一个选项。

答案 1 :(得分:0)

它没有被隐藏,因为Add in baseclass的方法签名与mycollection类中的方法不匹配。