Q:

Call event after method is called

I faced a strange problem actually. I try to create a new Set class based on a Hashset class.
public delegate void ChangedEventHandler();
class Set<T> : HashSet<T>
{

    event ChangedEventHandler Added; 

    public bool Add(T item) 
    {
        bool answer = base.Add(item);
        Added?(); //or Added?.Invoke()
        return answer;
    }

}

And I want some functions to be executed after Add method is called. Well the above code says that Add was already implemented in base class, but it isn't virtual. I can't override it.
Actually I want to get a result something like this:
Set<int> numbers = new Set<int>();
numbers.Added += SumNumbers;
numbers.Added += PrintNumbers;
numbers.Add(2) //Outputs 2
numbers.Add(4) //Outputs 6

//somewhere in this class
public int SumNumbers() {...}
public void PrintNumbers() {...}

Frankly speaking, I don't need functions to be with different syntax structure, but there's another question what to do if they are.

A:

Just add "new" keyword for method definition, because compiler warns you, that you are hiding base implementation:
public new bool Add(T item) 
{
    bool answer = base.Add(item);

    if(Added != null)
    {
        Added();
    }

    return answer;
}

Also correct syntax for attaching handlers to event is without "()" (you are passing method, not calling):
numbers.Added += SumNumbers;
numbers.Added += PrintNumbers;

//somewhere in this class
public int SumNumbers() {...}
public void PrintNumbers() {...}

