2

これについて少しグーグルで調べましたが、構文を説明するものは何も見つかりませんでした..

だから私は実行する消費者アクションAction<T>である生産者消費者のために使用しています。Action<T>「定義に移動」を右クリックしてAction<T>その定義を表示すると、これが表示されました

public delegate void Action<in T>(T obj);

うーん...私はかなり長い間ジェネリックを使用してきましたが、使用したことも構文を見たこともありません<in T>

構文とそれが何を生成するかを説明するために、誰かが素敵な要約を手に入れましたか?

ありがとう。D

4

1 に答える 1

1

C# 4.0 では、ジェネリック型に対する修飾子inoutバリアンス修飾子が導入され、ジェネリック型に対する共分散と逆分散が可能になりました。

ジェネリック型パラメーターの場合、inキーワードは、型パラメーターがcontravariantであることを指定します。

ジェネリック型パラメーターの場合、outキーワードは型パラメーターがcovariantであることを指定します。


また、MSDNのジェネリック インターフェイス (C# および Visual Basic) の差異から:

共分散により、メソッドは、インターフェイスのジェネリック型パラメーターによって定義されたものよりも派生した戻り値の型を持つことができます。

反変性により、メソッドは、インターフェイスのジェネリック パラメーターによって指定されたものよりも派生されていない引数の型を持つことができます。

于 2012-09-06T10:36:08.507 に答える