問題タブ [covariant]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
78 参照

c++ - C++ 共変戻り型アプリケーション

共変の戻り値の型と可能な (ない) アプリケーションについてお聞きしたかったのです。新しいデザインパターンを発見したと思ったのですが、残念ながらうまくいきません:(

例から始めましょう:

なぜそれが機能しないのか考えていますか?

PS下手なフォーマットで申し訳ありません

編集:もちろん、メインでキャストを使用すると、compute(D*) が正しく呼び出されます。

編集#2:できる限り切り替えを避けようとしています:)

0 投票する
3 に答える
1015 参照

c# - ジェネリック継承用の C# ファクトリ

このかなり基本的な質問で申し訳ありませんが、ドキュメントが見つかりませんでした。適切な用語を知らないからかもしれません。

クラス構造:

C を返すファクトリ メソッドを作成しようとしましたが、全体的な戻り値の型は A でなければなりません。残念ながら、継承構造は完全に共変であるように見えますが、この実装ではコンパイル エラーが発生します。

より具体的には、入力値に基づいて 3 つのクラスすべてを生成できるファクトリを実装しようとしていますが、ジェネリック機能を取得する必要があります。

アップデート

次のように 3 つのオブジェクトを作成する必要があります。

0 投票する
2 に答える
9886 参照

c# - Resharper が、このコードで「string[] から object[] への共変配列変換により、書き込み操作で実行時例外が発生する可能性がある」と言うのはなぜですか?

このコード:

「string[] から object[] への共変配列変換により、書き込み操作で実行時例外が発生する可能性がある」という苦情で、R# curmudgeon のようになります。

実際、このコードは完全に機能します。コンボ ボックスには月の値が入力されています。Resharper は何について話しているのでしょうか? また、その疑いを和らげるために何ができるでしょうか?

ジェネリック リストに不正なデータが含まれている可能性があるという単純な理由であれば、心配する必要はありません。また、問題が発生した場合でも、問題を突き止めるのは簡単です。

0 投票する
1 に答える
82 参照

list - メソッド += で scala List がパラメータとして共変型を取ることができる理由

Scala List は次のように宣言されています

List の先頭に要素を追加するメソッドは、次のように宣言されます。

型 A は共変であるのに、A が +: の反変の位置にあるのにコンパイラが文句を言わないのはなぜですか?