C#:你应该在哪里放置事件处理程序委托?

Svi*_*ish 3 c# conventions event-handling

我有这门课:

public class GenericEventArgs<T> : EventArgs
{
    public GenericEventArgs() : this(default(T)) {}
    public GenericEventArgs(T value) { Value = value; }
    public T Value { get; private set; }
}
Run Code Online (Sandbox Code Playgroud)

这个事件处理程序代表它:

public delegate void GenericEventHandler<T>(object sender, GenericEventArgs<T> e);
Run Code Online (Sandbox Code Playgroud)

我目前在命名空间中将这些文件放在同一个文件中.这被认为是糟糕/凌乱/等等吗?因为,一般来说我会说每个文件应该只包含一个类.所以为了让它干净,我宁愿GenericEventArgs单独在文件中使用该类.但后来我有这个GenericEventHandler<T>代表,我不知道应该放在哪里.它应该有自己的文件吗?只有...那一行?(当然还有命名空间)

你经常这样做吗?

Jon*_*eet 9

有什么理由不使用EventHandler<TEventArgs>?我觉得有一个相当的,EventArgs<T>但我现在看不到它......无论如何,我已经投入GenericEventArgsGenericEventArgs.cs

就个人而言,当我想介绍我自己的委托类型时(实际上这种情况越来越少见)我创建了一个Delegates.cs文件,其中包含了所有适当的委托名称委托.然后我知道在哪里找到它们而没有单个声明的文件.