問題タブ [generic-interface]

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

c# - 汎用インターフェース

これが私のコードです

これをコンパイルすると、エラーが発生しますType parameter declaration must be an identifier not a type

なぜ私は持つことができないのに持つことToEntity<MyOtherClass>ができるのですToEntity<T>か??

編集:何をMyOtherClassしていますか?複数のテーブル/クラスのエンティティ (エンティティ フレームワークに相当する POCO) とレコード (フレームワークによって返されるオブジェクト) の間で変換しています。したがって、これを使用してクラス固有の変換を行いたいと思います

0 投票する
4 に答える
2161 参照

c# - プライベート メンバー アクセサーとコレクションを処理する方法は?

私はこのようなクラス階層を持っています

ここで、A の 2 つのインスタンスがプロパティ KeyedCollection 内に同じ項目 B を持っているかどうかを比較する単体テストを作成したいと思います。ただし、A インスタンスに対して foreach ループを実行できません。私が試したこと、

このコードは、C クラス アクセサーが IEnumerable インターフェイスを実装していない (KeyedCollection クラスからのインターフェイスを実装していない) ため、コンパイルされません。この問題をどのように克服できるかについて、誰かが考えを持っていますか?

私が得ているエラーメッセージは

'A_Accessor.C' には 'GetEnumerator' のパブリック定義が含まれていないため、foreach ステートメントはタイプ 'C' の変数を操作できません

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

java - ジェネリック DAO インターフェイスのメソッドにデフォルト アクセスを使用するのはなぜですか?

ブラウジング中に、汎用DAOインターフェースの次のコードを見つけました。

メソッドをデフォルトのアクセス修飾子 (クラス/パッケージ: はい、サブクラス/ワールド: いいえ) のままにする特別な理由はありますか?

PS: 追加の質問です。ID は通常、RDBMS (XML、フラット ファイルなど) に依存しない実装で見られますか?

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

c# - Ninject でジェネリック型インターフェイスをバインドする方法

私は Ninject にかなり慣れていないので、一般的なリポジトリ パターンを実装するようになったときにつまずきました。ConcreteRepository<T> が IRepository<T> を実装し、EntityType が IEntityType を実装するクラスConcreteRepository<EntityType>に依存関係IRepository<IEntityType>をバインドしたいと考えています。私はこれを試しました:

...しかし、Ninject は、EntityType が IEntityType を実装していることを知らないか気にしないため、それを受け入れません。この依存関係をバインドするにはどうすればよいですか?

アップデート

これは私が得ているエラーです:

エラー 3 型 'ICM.Dependency.Repository.ConcreteRepository' は、ジェネリック型またはメソッド 'Ninject.Syntax.IBindingToSyntax.To()' の型パラメーター 'TImplementation' として使用できません。「ConcreteRepository<EntityType>」から「IRepository<IEntityType>」への暗黙的な参照変換はありません。

解決

バインディングが機能しない理由はまだよくわかりませんが、ジェネリックを間違って使用していたことは明らかです。そのため、ソリューションは実際には NInject とは関係ありません。IEntityType と TEntityType を明示的に接続するために、ConcreteRepository の指定を終了しました。

次に、注入は次のように記述できます。

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

c# - リポジトリインターフェースの生成

リポジトリごとに1つではなく、1つのインターフェイスを使用できるように、次のインターフェイスを一般化する方法を誰かが提案できますか?

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

c# - 一般的なインターフェイスのオーバーロード。有効な用語は?

これは、メソッドのオーバーロードの非常に基本的な例です。同じ名前で署名が異なる2つのメソッドです。

ここで、まったく同じ名前を共有しているが、次のような型パラメーターの数が異なる2つのジェネリックインターフェイスを定義するとします。

これは「一般的なインターフェイスのオーバーロード」を表していると言えますか?または、「オーバーロード」という用語は、そのようなコンテキストのメソッドにのみ適用されますか?それでも、まったく同じ名前を維持しながらパラメーターを変更するという意味で、メソッドのオーバーロードと非常によく似ています。

「ジェネリックインターフェイスのオーバーロード/オーバーロード」と言えない場合、同じ名前を共有するこれら2つの異なるインターフェイスについて何が言えますか?

これがばかげた質問である場合は感謝し、申し訳ありませんが、「ジェネリックインターフェイスのオーバーロード」または「ジェネリックインターフェイスのオーバーロード」をグーグルで検索しても、インターフェイスメソッドのオーバーロードに関する結果は得られません。これは、私が興味を持っていることではありません。

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

c# - インターフェイスのジェネリック階層

相互にリンクされたいくつかの汎用インターフェイスがあります。

最後のクラス c については、エラーがあります。

型 'b' は、ジェネリック型またはメソッド 'IC' の型パラメーター 'T' として使用できません。'b' から 'IB' への暗黙的な参照変換はありません。

この場合、ジェネリック インターフェイスを適切に使用するにはどうすればよいですか?

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

delphi - クラスが実装しているジェネリック インターフェイス内で、ジェネリック クラスで宣言されたネストされた型を使用する

私は、各要素を反復処理し、 type の現在の項目である paramenter を使用してtMyList<B>匿名プロシージャを呼び出すメソッド Each() を持つ一般的な List のようなクラスを持っています。ライフタイム管理を容易にするために、クラスをインターフェイスとして実装したいと考えています。tMyList<A>.enumProc<B>

問題は、型が不明であるiMyList<A>ため、インターフェイスでEach メソッドを宣言できないことです。tMyList<A>.enumProc私の知る限り、インターフェイスはネストされた型をサポートしていませんか?

コードは次のとおりです。

* この特定のケースでは、列挙子の実装はオプションではありません