1

以下のインターフェイス宣言があるとします。

宣言 A

public interface EventHandler<T>
{
    void Handle(T command);
}

宣言 B

public interface EventHandler<in T>
{
    void Handle(T @event);
}

通常のテストでは、これらはすべて同じことを行います。Handleメソッドは期待どおりに呼び出されます。

上記はどのように変化し、他のシナリオではどのように異なる動作をしますか?

4

1 に答える 1

11

inジェネリック型パラメーターを反変として指定します: in(ジェネリック修飾子) (C# リファレンス)outcovariantもあります。

@登録されたキーワードを識別子として使用できます。

キーワードは、コンパイラにとって特別な意味を持つ事前定義された予約済みの識別子です。プレフィックスとして含まれていない限り、プログラムで識別子として使用することはできません@。たとえば、@ifは有効な識別子ですがif、if はキーワードであるため、そうではありません。

出典: C# キーワード

于 2013-04-20T21:40:06.880 に答える