Общие встроенные Eventargs, чтобы держать только одно свойство?

StackOverflow https://stackoverflow.com/questions/3076990

Вопрос

У меня есть несколько классов 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<T> : EventArgs
{
    private readonly T value;
    public GenericEventArgs(T v)
    {
        this.value = v;
    }
    public T Value
    {
        get { return this.value; }
    }    
}

PS Я написал Предложение на Microsoft Connect

Это было полезно?

Решение

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

Другие советы

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top