How to change access modifier without hiding class base variable? : <p>I'm trying to extend the Process class a bit, to add access control of Process.Exited delegates and limit them to one. So far, I have this result:</p>

<pre><code>public class ProcessWithData : Process
{
    public EventHandler CurrentEventHandler { get; private set; }
    public new bool EnableRaisingEvents = true;
    private new EventHandler Exited;
    public void SetHandler(EventHandler eventHandler)
    {
        if (CurrentEventHandler != null) Exited -= CurrentEventHandler;
        CurrentEventHandler = eventHandler;
        Exited += CurrentEventHandler;
    }
}
</code></pre>

<p>However, the line</p>

<pre><code>private new EventHandler Exited;
</code></pre>

<p>overwrites existing EventHandler of Process class being the base. Therefore</p>

<pre><code>var proc = Process.Start("foo.exe");
ProcessWithData procwithdata = (ProcessWithData)proc;
</code></pre>

<p>should destroy Exited event handler upon cast.</p>

<p>How could I set <code>private</code> modifier to it without redefining(and destroying) existing instance inside Process class?</p>
