問題タブ [generics]

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 投票する
2 に答える
10600 参照

c# - Char[] をリストに変換する(c#)

Char[] (任意の長さ) を List に変換するにはどうすればよいですか?

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

java - クラスジェネリックの型の不一致

コンパイルされない次のコードがあります。コンパイルする方法はありますが、コンパイルされない理由を理解したいと思います。最後に投稿するエラーメッセージが表示される理由を誰かに教えてもらえますか?

Type mismatch: cannot convert from Class<capture#1-of ? extends Test> to Class<T>

これにキャストTest.classすると、警告Class<T>付きでコンパイルされ、完全に実行されます。Unchecked cast

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

.net - .Net: オブジェクトのジェネリック リストを DataSet に変換する

誰もこれを行うコードを持っていますか?

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

c# - 組み込み型を処理するジェネリック クラスを作成する

あまり実用的ではないかもしれませんが、それでも興味深いものです。

行列の乗算に関するいくつかの抽象的な質問があるため、int の行列をすぐに実装してから、自分の仮定をテストしました。

ここで、10 進数または倍精度で使用したい場合は、単に int マトリックスが適していないことに気付きました。もちろん、すべてを double にキャストすることもできますが、それは便利な方法ではありません。

足し算や掛け算ができるオブジェクトがたくさんあるという仮定を続けてください。私のマトリックスでそれらを使わないのはなぜですか?

したがって、それが Matrix クラスになると考えた直後に、ジェネリック T を使用できないことに直面しました。加算および乗算できるインターフェイスをサポートする必要があります。

そして問題は、自分のクラスで演算子をオーバーライドできたのですが、演算子をサポートするインターフェースを導入できなかったことです。また、組み込み型に演算子がありますが、それらに対するインターフェイスはまだありません。

ワーカークラスの本体を複製したくない場合、そのような場合はどうしますか? ラッパーと暗黙のキャストはあまり役に立ちませんでした。美しいソリューションに興味があります。

ありがとう。

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

.net - テンプレート化されたデリゲート

次のコードパターンがあります。

唯一の違いは、戻り値の型と、メソッドへのパラメーターの数と型が異なる可能性があることです。

「いくつかの作業を行う」部分を除くすべてのコードを処理する汎用/テンプレート化されたメソッドを作成したいのですが、どうすれば実現できますか。

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

generics - UncheckedException なしで Collections.EMPTY_LIST を使用できますか?

私のJavaプログラムでCollection.EMPTY_LISTを使用するジェネリックフレンドリーな方法はありますか?

自分で宣言できることはわかっていますが、JDKにこれを行う方法があるかどうか知りたいだけです。

何かのようなものusers = Collections<User>.EMPTY_LIST;

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

c# - 「特殊化された」コンストラクターを持つ C# ジェネリック クラス

次のようなクラスがあります。

そして、辞書に便利な機能を追加したいと思います (辞書はすべての操作を効率的にサポートするため)。

しかし問題は、そのようなコンストラクターは Key と Value のみを指定し、T を直接指定しないことですが、T は単なる KeyValuePair です。次のように、このコンストラクター T が KeyValuePair であることをコンパイラーに伝える方法はありますか?

現在、回避策として静的な Create 関数を使用していますが、直接コンストラクターの方が良いと思います。

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

c# - C#ジェネリックを使用してこれらの3つのメソッドを1つに変換するにはどうすればよいですか?

私はジェネリックをあまり使用していないので、重複を減らすためにジェネリックを使用して次の3つの方法を1つに変えることができるかどうかわかりません。実際、私のコードには現在6つのメソッドがありますが、3つで解決できれば、残りは同じソリューションで機能するはずです。

単純な式パーサーを作成しています。このパーサーは、加算/減算などの単純な2項演算を評価する必要があります。上記のメソッドを使用して、関連する型を使用して実際の計算を実行します。しかし、もっと良い答えがなければなりません!

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

wcf - ジェネリックWCFリターンタイプの名前を制御するにはどうすればよいですか?

プロトタイプが次のWCFWebサービスメソッドがあります。

クライアントにサービス参照を追加すると、Visual Studio(2005)は、「Response <List<Customer>>」のラッパーである「ResponseOfArrayOfCustomerrleXg3IC」というタイプを作成します。ラッパー名を制御する方法はありますか?ResponseOfArrayOfCustomerrleXg3ICはあまり魅力的に聞こえません...

0 投票する
5 に答える
7764 参照

c# - 汎用値の入力 (C#)

this.value が T であるジェネリック クラスでこれを試すと、次のようになります。

コンパイル時に次のエラーが表示されます:「型 'T' を 'int' に変換できません」

this.value が int の場合、積分演算を実行するにはどうすればよいですか?

これは単なる例であることに注意してください。このコードはジェネリックを使用して型変換を行います。「int」は T の型の 1 つの例にすぎません。