代码之家  ›  专栏  ›  技术社区  ›  abatishchev Karl Johan

只保存一个属性的通用内置事件参数?

  •  6
  • abatishchev Karl Johan  · 技术社区  · 14 年前

    我有许多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; }
        }    
    }
    

    附笔。 我写了一封信 suggestion on Microsoft Connect

    3 回复  |  直到 14 年前
        1
  •  1
  •   Itay Karo    14 年前



    看一看 here

        2
  •  3
  •   Jon Skeet    14 年前

    第一,它肯定没有得到很好的宣传(i、 这不是你想要的东西 意味 Func<T>

    这样做的一个缺点是,它没有一个有意义的属性名称,当然-它就像一个 EventArgs 相当于 Tuple 事实上,要明白这是什么意思,去争取:)

        3
  •  2
  •   STO    14 年前

    在此页底部,您可以看到所有类都继承自EventArgs类: http://msdn.microsoft.com/en-us/library/system.eventargs.aspx

    最合适的是ReturnEventArgs http://msdn.microsoft.com/en-us/library/ms615572.aspx 但是这个类位于PresentationFramework.dll中,它只被WPF项目引用。

    所以我建议你自己做一个。

    推荐文章