問題タブ [interface-implementation]
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.
php - PHPインターフェースの実装は、パラメーターのサブクラスを拒否します
このことを考慮:
私の概念では、上記は機能するはずですが、phpがその実装を拒否するため、最初のパラメーターがインターフェース(I)で定義されているものとまったく同じタイプ(A)である必要があります。BはAのサブクラスなので、何が問題なのかわかりません。ここで何かが足りませんか?
c# - C#では、VB.NETのように、別の名前のメンバーを使用してインターフェイスメンバーを実装することはできますか?
わかりました。これは私が尋ねている質問です。優れたコーディング手法を示す場合(これは実際には悪い手法と見なされる可能性があります)ではなく、「できる」という点でまったく実行できません。
そうは言っても、VB.NETでは次のようなインターフェイスを実装します...
C#では、このように明示的に実行します(これはインターフェイスを介してのみ呼び出すことができます)...
またはもっと簡単に、暗黙的にこのように(この場合、直接、またはインターフェースを介して呼び出すことができます)...
ただし、VBに関しては、メンバーに任意の名前を使用してこれを行うこともできます...
つまり、実装を処理するメソッドは、インターフェイスのメンバー名とは完全に異なる名前を持つことができます。
C#にこれに似たものがあるかどうか疑問に思っています。(はい、明示的なインターフェイスを実行し、それに委任するだけの別の名前の別の'wrapper'メンバーを介してアクセスできることはわかっていますが、VB.NETでは、両方を1つのメソッドで実行します。)
それでそれはできますか?
マーク
c# - インターフェイスを実装するためのLINQtoSQLオブジェクト?
私のデータベースには、次のテーブルがあります
アプリケーションに対応するPOCOクラスがありました
そして私はインターフェースIExpressionを持っています
アプリケーション内のビジネスオブジェクトの1つは、次のようなタイプIExpressionのオブジェクトを集約します。
これが行われるのは、MyBusinessObjectのこのプロパティがCustomExpression型またはGlobalExpression型のいずれかである可能性があるが、動的に決定されるためです。
これはすべて正常に機能しましたが、CustomExpressionおよびGlobalExpressionオブジェクトを取り出して、CustomExpressionおよびGlobalExpressionlinqtosqlオブジェクトを直接使用するように指示されました。これにより、データベースで何かを行う必要があるたびに、POCOからlinqtosqlオブジェクトに変換する必要がなくなります。
この方法の問題は、IExpressionインターフェイスを実装するCustomExpressionオブジェクトとGlobalExpressionオブジェクトがなくなったことです。
この状況で私は何をすべきですか?これらのオブジェクトとのインターフェースとのこの関係を表す方法はありますか?
vba - クラスは Collection オブジェクトを拡張できますか?
Collection
新しいクラスで VBA オブジェクトの機能を拡張し、このクラスを の継承にしようとしていますCollection
が、Implements Collection
ステートメントで次のエラーが発生します。
Implements のインターフェイスが正しくありません: メソッドの名前にアンダースコアが含まれています。
何アンダースコア?! Add
、、、およびはItem
、のドキュメントにリストされている唯一のメソッドです。4 つすべてにアンダースコアがありません。Remove
Count
Collection
EDIT:明確にするために、私は(このアプローチUniformCollection
に触発された、すべて同じタイプのメンバーのみを受け入れる)というクラスを作成しています。を実装して、 aが であり、他のオブジェクトのメソッドなどを呼び出すときに a の代わりに使用できるようにしたいと思います。 Collection
UniformCollection
Collection
Collection
Add、Item などの委任メソッド/プロパティ、および動作するための NewEnum プロパティを作成する必要があることはわかっていますがFor Each
、既に作成しています。
私の問題は、Implements Collection
ステートメントが上記のエラーを私に与えることです。
おまけの質問:Count
のメソッドまたはプロパティはCollection
? ヘルプではこれをプロパティと呼んでいますが、VBA エディタのオブジェクト ブラウザでは関数、つまりメソッドと呼んでいます (フライング イエロー ボックス)。
c# - クラスがC#でインターフェイスと追加のプライベートメソッドを実装することは許可されていますか?
私は次のインターフェースを持っています:
次のクラスによって実装されます。
私のコードは問題なくコンパイルされますが、インターフェイス定義に含まれていないプライベート メソッド(または一般的には任意のメソッド) を追加することが、 OO プログラミングの良い方法であるかどうか疑問に思っていました。
objective-c - libxml2 は XPath 2.0 をサポートしていますか?
XPath 2.0
でexp//span/string(.)
を使用しようとしましたlibxml2
が、機能しません。
だから、私の質問は次のとおりです。libxml2
サポートしてXPath 2.0
いますか?
.net - DataTableはIListSourceを実装していますか?
ドキュメント(およびインテリセンス)には、をDataTable
実装することが非常に明確に記載されていますIListSource
。しかし、なぜインターフェースの(主要な)部分であるメソッドDataTable
がないのでしょうか?getList()
IListView
java - インターフェースの実装であるスレッドが JWindow オブジェクトと通信できるようにするにはどうすればよいですか?
メイン JButton ゴールに含めるネットワーク カウンター値を取得するにはどうすればよいですか? 私はこのようなことをしていました:
Main.java:
プロセス.java
Network.java
NetworkListener.java
c# - 2 つのパラメーターにより、「型のメソッドに実装がありません」という例外が発生しますか?
私は多くのプロジェクトで解決策を持っています。質問に関連するのは、API クラス ライブラリ、CustomTriggers クラス ライブラリ、および Web サイトです。CustomTriggers と Web サイトの両方が API を参照します。CustomTriggers は、API にある Interface ITrigger を実装します。
問題は、インターフェイス ITrigger の 'Run' メソッドで 1 つのパラメーターを定義すると問題なく動作することですが、2 つのパラメーターを定義すると、アセンブリからの Type 'CustomTriggers.*' の「メソッド 'Run'」 * には実装がありません。 ' 例外がスローされます。理由がわかりません。
インターフェース:
ITrigger を実装する「CustomTriggers」プロジェクトのクラス:
例外をスロー [しない] メソッド [スタブ]:
したがって...このコードは準拠しており、問題なく実行されます。心配はありません。
しかし、「ITrigger」と「SomeTrigger」の両方の「Run」メソッドに別のパラメーターを追加すると、
コメントで示された行で例外をスローします。
私はすべてのアイデアがありません。少し助けて?
c# - 複数の実装試行
さまざまなサーバーに接続してデータを読み取り、操作を実行するソリューションを開発しています。ファイアウォール、停止/失敗したサービス、認証の違い、さまざまなソフトウェア構成など、信頼できる通信を複雑にする多くの変数があります。これらの問題を回避するために使用できる方法がありますが、実行時にはどれが成功するかはわかりません。
私の目標は、操作を実行するために使用できるインターフェイスと実装を作成することです。最初のメソッド呼び出しは、ほとんどのデバイスで機能する最速の実装に対するものであり、その後に、前述の問題に対処できる他の呼び出しが続きます。
完璧な世界では、プロセスはどのメソッドが成功するかをすばやく特定するように記述されますが、私のテストでは、単純に例外をキャッチするのと同じくらい多くの処理時間がかかりました。パフォーマンスは常に考慮事項ですが、最終的には、タスクが正常に完了することがより重要です。
以下は私が作成した例で、実装のリストを繰り返し処理する最悪のシナリオを示しています。これは 1 つの方法ではうまく機能しますが、20 以上の異なる操作で使用される場合、DRY の原則には従いません。考えられる解決策の 1 つは Unity と Interception ですが、呼び出しハンドラの呼び出しメソッドは、可能な実装のリストではなく、解決済みの実装を使用していることがわかりました。何かが欠けていない限り、それは選択肢のようには見えません。また、いくつかのインターフェイスでこのパターンに従う必要があるため、実装のリストを反復処理できる汎用ハンドラーを作成するとよいでしょう。
このタスクを完了する方法についてアドバイスをいただければ幸いです。
インターフェース
実装
特別な実装は、1 つが例外なく成功するまで、他の実装をループします。