問題タブ [generic-collections]
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.
c# - ジェネリックインターフェイス
次のように、類似したエンティティが異なるタイプのコレクションを持つ2つの場所にあるアプリを設計しています。
モデル:
同様のビューモデル:
両方のエンティティの一貫性を保つために、両方がすべてのプロパティを実装することを保証する汎用インターフェイスを使用することを考えたので、次のようなものを作成しました。
とクラスは
しかし、コンパイラは私のインターフェースをコンパイルする準備ができていません。:(言う、型パラメータ「T」は型引数と一緒に使用することはできません。
これが必要な理由、/からmodel&viewModelへの型変換を最小限に抑えたいと思いました。
私のviewModelは次のようになります、
ModelとViewModelを同期させるためのより良い方法を提案してください。
c - マクロを使用したタイプ セーフなジェネリック コンテナー
マクロを使用して、C でタイプ セーフなジェネリック リンク リストを作成しようとしています。C++ でのテンプレートの動作と同様に動作するはずです。例えば、
私の最初の試みは、#define LIST(TYPE)
(上で使用したマクロ) を定義することでしたstruct _List_##TYPE {...}
。ただし、新しいリストを宣言するたびに構造体が再定義されるため、これは機能しませんでした。私はこれを行うことで問題を解決しました:
しかし、別の問題は、DEFINE_LIST(int)
たとえば、を使用する複数のファイルがあり、それらのいくつかが互いに含まれている場合、同じ構造体の複数の定義が依然として存在することです。DEFINE_LIST
構造体が既に定義されているかどうかを確認する方法はありますか?
generics - 継承されたオブジェクトのコレクションをメソッドに渡し、ベースオブジェクトのICollectionを受け入れます
背景:私は型のジェネリックコレクションを持っておりDirectoryCollection<T>
、Tは型でなければならないことを指定しましたIEntity
。Entity
を実装する具象型IEntity
と2つの派生型がEmployee
ありStation
ます。
.NET 4.0では、(ここからIEnumerable<Entity>
)パラメータをとしてメソッドを呼び出すことが可能であることを知っていDirectoryCollection<Employee>
ますが、タイプがパラメータのメソッドでは機能しないようですICollection<Entity>
。Remove
上記のメソッドでは、コレクションのメソッドとメソッドを使用するため、メソッドのシグネチャAdd
に入れることを躊躇します。IEnumerable
この問題を解決するためのベストプラクティスは何ですか?
c# - 基本クラスの静的メンバーとしてジェネリック型を使用する
次のタイプの基本クラスに静的メンバーがあります。
このジェネリック メンバーは、すべての派生クラスで使用できる必要があります。解決方法がわかりません。
編集
メンバーを保護されたものに変更しても、問題は解決しません。
より明確にするために、このコード行を使用しました
しかし、すべての派生クラスには独自のコピーがcachedList
あり、すべてのクラスはステートメントに対して「true」を返しますcachedList == null
c# - ジェネリック コレクション型テスト
ジェネリック型に関係なく、特定のコレクション型 (リフレクションを使用) に従っていくつかの操作を行いたいと思います。
これが私のコードです:
今のところはうまくいきますが、それが最も安全な解決策ではないことは明らかです。
私もそれを試しましたが、実際にはコンパイルされますが機能しません...指定されたコレクションタイプのすべてのインターフェースもテストしようとしましたが、コレクション内のインターフェースの排他性を意味します...
英語のトレーニングが不足していることを明確にしたいと思います:)
c# - この関数を修正して、任意のクラスのリストを入力できるようにするにはどうすればよいですか?
この関数を修正して、任意のクラスのリストを入力できるようにするにはどうすればよいですか?
java - ワイルドカード型を返さないようにする
次のようなシングルトンであるワイルドカード型のコレクションを持つクラスがあります。
クライアント コードで、このコレクションにさまざまなパラメーター化された型を追加できるようにしたいと考えています。
ここまでは、私が理解しているように、すべて問題ありません。Type<?>
ただし、クライアントは提供されたを取得できる必要もありますKey
。したがって、次のようなメソッドが に追加されObliviousClass
ます。
しかし、手元にあるEffective Javaのコピーで、次のように読みました。
戻り値の型としてワイルドカード型を使用しないでください。
クライアントは返された をキャストする必要があるため、問題を理解していますType<?>
。ObliviousClass
しかし、上記のクライアント コードが機能しないため、ジェネリック型を作成したくありませんObliviousClass<T>
...
私がやろうとしていることのためのより良いデザインはありますか? -私の現在の解決策は、クライアントに静的メソッドを提供することです。次の行に沿ったもの:
私はいろいろと調べましたが、私の混乱を完全に解消する答えを見つけることができませんでした.
.net - スタックICollectionを実装しますが、ICollectionのメソッドがあります
に基づいてカスタムコレクションを作成しようとしていますStack<T>
。Stack<T>
Visual Studioで[メタデータから]を見ると、がのメソッドをStack<T>
実装ICollection
する必要があることを示していますが、代わりに、のメソッドを持っていると示されています。誰かがこれが事実である理由を説明できますか?ICollection
CopyTo(Array array, index)
ICollection<T>
CopyTo(T[] array, index)
Stack<T>
かなり模倣したコレクションを作成しようとしています。スタックのように実装する場合、メソッドICollection
を使用する必要がありますが、私が本当に望んでいるのは、メソッドを使用することです。実装せずにこれを達成する方法はありますか?CopyTo(Array array, index)
CopyTo(T[] array, index)
Stack<T>
ICollection<T>
c++-cli - リストに MyClass 値を格納する
私は C++\CLI をまったく使用したことがなく、次の問題があります。たとえば、MyClass という名前のクラスがあり、そのいくつかの値をメモリに格納する必要があります。長い間 C# を使用していたため、List が最も親しみやすいため、List を使用することにしました。コードは次のとおりです。
コンパイラは、エラーC2582があると言い続けます。しかし、代入演算子がない場合、どのようにリストを初期化すればよいでしょうか?
前もって感謝します。
c# - ObservableCollectionの変換ObservableCollectionへ
私は持っていObservableCollection<T>
ます。TにはToString()メソッドがあります。私がやりたいのは、をに変換するObservableCollection<T>
ことObservableCollection<string>
です。簡単に検索したところ、foreachアプローチを提案する記事がいくつか見つかりました-別の方法はありますか?例えば: