4

私はこのクラスを持っています:

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

そして、このイベント ハンドラー デリゲートは次のようになります。

public delegate void GenericEventHandler<T>(object sender, GenericEventArgs<T> e);

私は現在、これらを名前空間内の同じファイルにまとめています。それは悪い/乱雑/などと見なされますか? 一般に、各ファイルには 1 つのクラスのみを含める必要があります。したがって、きれいにするためGenericEventArgsに、ファイルだけにクラスを含めることをお勧めします。しかし、GenericEventHandler<T>どこに配置すればよいかわからないデリゲートがあります。独自のファイルが必要ですか?たった...その1行で?(そしてもちろん名前空間)

普段はこれをどのようにしていますか?

4

4 に答える 4

10

使用しない理由はありEventHandler<TEventArgs>ますか? 相当するものがあると思っていたのですEventArgs<T>が、今のところ見当たりません… とにかく、入れGenericEventArgsますGenericEventArgs.cs

個人的には、独自のデリゲート型を導入したい場合 (正直なところ、これはますますまれです) Delegates.cs、名前空間に適切なすべてのデリゲートを含むファイルを作成します。そうすれば、単一の宣言用のファイルがなくても、それらを見つける場所がわかります。 .

于 2009-04-22T08:57:26.133 に答える
2

独自のイベント ハンドラ デリゲートを作成したいときは、独自のイベント ハンドラ デリゲートで使用する EventArgs クラスの名前を持つ 1 つのファイルを作成していました。たとえば、'MyEventArgs.cs' です。

そのファイルには、MyEventArgs クラスと、このクラスを使用する MyEventHandler デリゲートが含まれていました。

ただし、既存の汎用 EventHandler ( EventHandler<T>) を使用し、カスタム EventArgs クラスを作成するだけで済みます。だから、この「問題」はもう私には存在しません。:)

于 2009-04-22T08:57:23.327 に答える
1

さて、私はGenericEventArgs<T>クラスをそれ自身のファイルに入れます

GenericEventArgs_T.cs は、他のすべてのものと同じ名前空間にあります。

そして、デリゲート (および存在する場合はイベント) を、そのイベントが公開されるクラスに配置します。

于 2009-04-22T08:57:06.773 に答える
-1

あなたが既に行っていることを実行してから、イベントに使用されていないすべてのデリゲートを、Delegates.cs などと呼ばれる別の .cs ファイルに入れます。

于 2009-04-22T09:39:05.597 に答える