覆盖函数c#时出错

时间:2014-11-17 12:50:18

标签: c# arraylist event-handling override

大家好我需要问为什么我不能覆盖这个添加函数它会给出一个错误,它必须返回一些值,当我尝试返回一些像这样的值时#34; return base.Add( ○);"它表示add函数返回一个void,因此不应该返回return语句。请告诉我我做错了什么

class MyArrayList : ArrayList
{
    public event EventHandler Added;
    public void onAdded()
    {
        EventArgs e = new EventArgs();
        Added(this, e);
    }

    public override add(object o )
    {
        onAdded();
        base.Add(o);
    }
}

2 个答案:

答案 0 :(得分:1)

ArrayList.Add返回int。您错过了返回类型:

public override Add(object o)
{
    onAdded();
    base.Add(o);
}

应该是:

public override int Add(object o)
{
    onAdded();
    base.Add(o);
}

这看起来像是一个学习实验,但如果不是,请考虑查看.NET 2.0中引入的类型安全通用集合,例如List<T>

答案 1 :(得分:0)

您缺少函数的返回类型。见下文:

public override int Add(object o)
{
    onAdded();
    base.Add(o);
}