この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 2933|答える: 0

[通信] .NET/C# 汎用T共変出力とインバータインターフェース

[リンクをコピー]
掲載地 2023/08/03 20:35:23 | | | |
要件:最近、.NETのソースコードを見てみたら、インターフェースジェネリックにoutキーワードがあるのを見つけました。例えば:パブリックインターフェース IStringLocalizer<out T>そして、それを研究した。

インターフェース内の一般的な型パラメータは共変量またはインバータとして宣言できます。 共分散により、インターフェースメソッドはジェネリック型パラメータで定義される返りタイプよりも導出されたリターン型を持つことを可能にします。 インバータにより、インターフェースメソッドは汎用パラメータで指定された引数タイプからの導出度を小さく抑えられます。 共変型またはインバータ型ジェネリックパラメータを持つ汎用インターフェースは「バリアント」と呼ばれます。

共 分散: outキーワードを使って、ジェネリック型パラメータを共変として宣言します。
あべこべ: in キーワードを使って、汎用型パラメータをインバータとして宣言します。

このVS2022のスクリーンショットは非常に詳細で、ジェネリックにどのような制限があるかを示しています(以下に示しています):



就任時Func<in T, out TResult>つまり、パラメータ型はT、リターン型はTResultであることを意味します。

参考:
ハイパーリンクのログインが見えます。
ハイパーリンクのログインが見えます。






先の:.NET 6の新しいタイマーであるPeriodicTimerが使用されています
次に:Qv2rayはWindows上でTrojan-Goサービスを接続します
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com