問題タブ [explicit-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# - 新しいメンバーを追加して抽象メンバーを同時にオーバーライドするには?
IFoo
インターフェイスといくつかのメンバーがあるとしましょうMember
。それを実装するクラスは、インターフェイスからのメンバーを実装すると同時に、まったく同じ名前の「新しい」メンバーを追加できます。
それは本当に素晴らしいです。今、私は似たようなものを引きたいと思っていますが、インターフェースからではなく、抽象クラスから来ています。インターフェイスと同様の動作を期待します-抽象クラスのインスタンスがあると、元のメンバーが表示され、派生クラスのインスタンスがあると、「新しい」メンバーが表示され、元のメンバーは非表示になります。
私はこのようなことを念頭に置いています:
これを許可するメカニズムはありますか?
更新: には 2 人のメンバーがいますFoo
。私は 2 つの試行を書きました。使用方法はインターフェイスと同じです。
entity-framework - エンティティ クラスで明示的なインターフェイスの実装を使用する場合、EF Core はテーブルに列を作成しません。
なぜ私はこれをやっているのですか?インターフェイスを変更してプロパティを削除すると、クラスに実装が存在するインターフェイスで宣言されたプロパティがないというコンパイル時エラーが発生するはずです。このようにして、クラスから実装を削除できます。しかし、クラスでインターフェイス名を使用して明示的な実装を使用しない場合、インターフェイスからプロパティを削除すると、その対応するプロパティはクラス自体のプロパティとして扱われます。
私は次のようにしてみました
しかし、画像を添付しているスタックオーバーフロー例外があります