<p>With generics, is there ever a reason to create specific derived EventArg classes</p>

<p>It seems like now you can simply use them on the fly with a generic implementation.</p>

<p>Should i go thorugh all of my examples and remove my eventArg classes (StringEventArgs, MyFooEventArgs, etc . .)</p>

<pre><code>public class EventArgs&lt;T&gt; : EventArgs
{
    public EventArgs(T value)
    {
        m_value = value;
    }

    private T m_value;

    public T Value
    {
        get { return m_value; }
    }
}
</code></pre>

As TcKs already said: Use
```
EventArgs<T>
```
if you only need to pass one value, otherwise derive from
```
EventArgs
```
(or
```
EventArgs<T>
```
, whatever you want).