С generics, существует ли когда-либо причина для создания определенных производных классов EventArg
Кажется, теперь вы можете просто использовать их "на лету" с общей реализацией.
Должен ли я переместить все мои примеры и удалить классы eventArg (StringEventArgs, MyFooEventArgs и т.д.).
public class EventArgs<T> : EventArgs
{
    public EventArgs(T value)
    {
        m_value = value;
    }
    private T m_value;
    public T Value
    {
        get { return m_value; }
    }
}
