Универсальный встроенный EventArgs для содержания только одного свойства?

У меня есть много классов EventArgs только с одним полем и соответствующим свойством для чтения его:

public class SomeEventArgs : EventArgs
{
    private readonly Foo f;
    public SomeEventArgs(Foo f)
    {
        this.f = f;
    }
    public Foo Foo
    {
        get { return this.f; }
    }    
}

Есть ли какой-либо встроенный, универсальный класс для реализации такого поведения, или я должен прокрутить свое собственное?

public class GenericEventArgs : EventArgs
{
    private readonly T value;
    public GenericEventArgs(T v)
    {
        this.value = v;
    }
    public T Value
    {
        get { return this.value; }
    }    
}

P.S. Я записал предложение на Microsoft Connect

6
задан abatishchev 19 June 2010 в 20:31
поделиться

3 ответа

Думаю, что нет.
Похоже, вы не единственный, кто задает себе этот вопрос.
Взгляните здесь

1
ответ дан 17 December 2019 в 02:24
поделиться

На этой странице внизу вы можете увидеть, что все классы унаследованы от класса EventArgs: http://msdn.microsoft.com/en-us/library/system.eventargs.aspx

Наиболее подходящим является ReturnEventArgs http://msdn.microsoft.com/en-us/library /ms615572.aspx, но этот класс находится в PresentationFramework.dll, на который ссылаются только проекты WPF.

Поэтому рекомендую создать свой собственный.

2
ответ дан 17 December 2019 в 02:24
поделиться

Если там есть , то это, конечно, плохо освещается! (т.е. это не то, что вы имели в виду для использования в общих целях, например Func .) Я сам думал о том же раньше. Это не редкость, ИМО.

Одним из недостатков этого является то, что у него, конечно, нет значимого имени для свойства - это похоже на EventArgs эквивалент Tuple . Но если у вас есть несколько разных вариантов использования для этого, и на самом деле будет очевидным, в чем смысл, сделайте это :)

3
ответ дан 17 December 2019 в 02:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: