問題タブ [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.
c# - 汎用インターフェース
これが私のコードです
これをコンパイルすると、エラーが発生しますType parameter declaration must be an identifier not a type
なぜ私は持つことができないのに持つことToEntity<MyOtherClass>
ができるのですToEntity<T>
か??
編集:何をMyOtherClass
していますか?複数のテーブル/クラスのエンティティ (エンティティ フレームワークに相当する POCO) とレコード (フレームワークによって返されるオブジェクト) の間で変換しています。したがって、これを使用してクラス固有の変換を行いたいと思います
c# - プライベート メンバー アクセサーとコレクションを処理する方法は?
私はこのようなクラス階層を持っています
ここで、A の 2 つのインスタンスがプロパティ KeyedCollection 内に同じ項目 B を持っているかどうかを比較する単体テストを作成したいと思います。ただし、A インスタンスに対して foreach ループを実行できません。私が試したこと、
このコードは、C クラス アクセサーが IEnumerable インターフェイスを実装していない (KeyedCollection クラスからのインターフェイスを実装していない) ため、コンパイルされません。この問題をどのように克服できるかについて、誰かが考えを持っていますか?
私が得ているエラーメッセージは
'A_Accessor.C' には 'GetEnumerator' のパブリック定義が含まれていないため、foreach ステートメントはタイプ 'C' の変数を操作できません
java - ジェネリック DAO インターフェイスのメソッドにデフォルト アクセスを使用するのはなぜですか?
ブラウジング中に、汎用DAOインターフェースの次のコードを見つけました。
メソッドをデフォルトのアクセス修飾子 (クラス/パッケージ: はい、サブクラス/ワールド: いいえ) のままにする特別な理由はありますか?
PS: 追加の質問です。ID は通常、RDBMS (XML、フラット ファイルなど) に依存しない実装で見られますか?
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 の指定を終了しました。
次に、注入は次のように記述できます。
c# - リポジトリインターフェースの生成
リポジトリごとに1つではなく、1つのインターフェイスを使用できるように、次のインターフェイスを一般化する方法を誰かが提案できますか?
c# - 一般的なインターフェイスのオーバーロード。有効な用語は?
これは、メソッドのオーバーロードの非常に基本的な例です。同じ名前で署名が異なる2つのメソッドです。
ここで、まったく同じ名前を共有しているが、次のような型パラメーターの数が異なる2つのジェネリックインターフェイスを定義するとします。
これは「一般的なインターフェイスのオーバーロード」を表していると言えますか?または、「オーバーロード」という用語は、そのようなコンテキストのメソッドにのみ適用されますか?それでも、まったく同じ名前を維持しながらパラメーターを変更するという意味で、メソッドのオーバーロードと非常によく似ています。
「ジェネリックインターフェイスのオーバーロード/オーバーロード」と言えない場合、同じ名前を共有するこれら2つの異なるインターフェイスについて何が言えますか?
これがばかげた質問である場合は感謝し、申し訳ありませんが、「ジェネリックインターフェイスのオーバーロード」または「ジェネリックインターフェイスのオーバーロード」をグーグルで検索しても、インターフェイスメソッドのオーバーロードに関する結果は得られません。これは、私が興味を持っていることではありません。
c# - インターフェイスのジェネリック階層
相互にリンクされたいくつかの汎用インターフェイスがあります。
最後のクラス c については、エラーがあります。
型 'b' は、ジェネリック型またはメソッド 'IC' の型パラメーター 'T' として使用できません。'b' から 'IB' への暗黙的な参照変換はありません。
この場合、ジェネリック インターフェイスを適切に使用するにはどうすればよいですか?
delphi - クラスが実装しているジェネリック インターフェイス内で、ジェネリック クラスで宣言されたネストされた型を使用する
私は、各要素を反復処理し、 type の現在の項目である paramenter を使用してtMyList<B>
匿名プロシージャを呼び出すメソッド Each() を持つ一般的な List のようなクラスを持っています。ライフタイム管理を容易にするために、クラスをインターフェイスとして実装したいと考えています。tMyList<A>.enumProc
<B>
問題は、型が不明であるiMyList<A>
ため、インターフェイスでEach メソッドを宣言できないことです。tMyList<A>.enumProc
私の知る限り、インターフェイスはネストされた型をサポートしていませんか?
コードは次のとおりです。
*
この特定のケースでは、列挙子の実装はオプションではありません