c# - 通用内置 EventArgs 只包含一个属性?

标签 c# .net generics events fcl

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

最佳答案

如果有,那肯定没有得到很好的宣传! (也就是说,这不是你打算用于一般用途的东西,比如 Func<T> 。)我以前也想过同样的事情。 IMO,这不是一个罕见的要求。

这样做的一个缺点是它没有一个有意义的属性名称,当然 - 它就像一个 EventArgs相当于Tuple .但是,如果您对此有几个不同的用例,并且它实际上很明显是什么意思,那就去做吧:)

关于c# - 通用内置 EventArgs 只包含一个属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3076990/

相关文章:

c# - 作为 UnmanagedFunctionPointer 传递给 C 的函数在哪里执行?

c# - x64 上的 TypeLoadException 但在具有 structlayouts 的 x86 上没问题

ios - 如何为 NSNumbers 数组的数组定义 Objective-C 轻量级泛型?

asp.net - .NET 中的垃圾收集器

.net - CommandBars.OnUpdate 停止被触发

C++ 是否可以有一个通用的函数指针?

java - 修复此铸件行为的最简洁方法

c# - 在 ASP.NET Core 3 的类库中创建 TagHelper

C# 枚举为 int

使用套接字的 C# 代理,我应该怎么做?