問題タブ [inheritance]
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.
inheritance - 基本クラスの継承
Active Directoryでフォーム認証を使用しようとしていますが、ADのロール(memberOf)が必要です。私はこれを可能にするためにRoleProviderのメンバーをオーバーライドしようとしています(誰かがより良い方法を知らない限り)。RoleProviderから継承している新しいクラスでエラーが発生しました。
エラーは次のとおりです。ADAuth.ActiveDirectoryRoleProvider'は継承された抽象メンバー'System.Web.Security.RoleProvider.ApplicationName.get'を実装していません
オーバーライドしていない他のすべてのメンバーを設定するにはどうすればよいですか?継承されたクラスでそれらをすべて作成する必要がありますか、それとも基本クラスのものだけを使用するように指示する方法はありますか?
php - 継承オブジェクトを単体テストするにはどうすればよいですか?
コンポジションを使用すると、テスト対象のクラスが依存する他のオブジェクトをモックできますが、継承を使用すると、基本クラスをモックできません。(またはできますか?)
私は通常、継承よりも構成を優先しようとしますが、継承が実際に仕事に最適なツールのように思えることがあります-まあ、少なくとも単体テストになるまでは。
では、どのように継承をテストしますか? それとも、テスト不可能として破棄し、代わりにコンポジションを使用しますか?
注:私は主に PHP と PHPUnit を使用しています。しかし、他の言語でこの問題の解決策があるかどうかを知ることも興味深いでしょう.
c# - 所有しているクラスの外から C# イベントを呼び出していますか?
どのような状況下でもこれを達成できるでしょうか?
私の現在の状況は次のとおりです。
私の最初の考えは、次のような機能を持つことでした。
それは恐ろしく醜いクラッジですが、うまくいくはずです...もっとエレガントな解決策があるに違いありませんか? .NET ライブラリは、コントロール内のメッセージ ハンドラーと呼び出しイベントを使用して常にこれを行います。他の誰かが他の/より良いアイデアを持っていますか?
.net - Collections.Generic と継承へのロジックとその適用
すべてがオブジェクトから継承されます。継承の基本です。すべてを暗黙的に継承ツリーにキャストできます。
したがって、これを論理的な結論までたどると、人のグループはオブジェクトのグループでもあります。
それがうまくいかないことを除けば、.NET を設計した人々がこれを見落としたか、または何らかの理由があり、そのどちらかはわかりません。少なくとも 1 回は、これが役立つ状況に遭遇しましたが、最終的に厄介なハック (キャスト演算子を実装するためだけに List をサブクラス化する) を使用する必要がありました。
問題はこれです: この行動には理由がありますか? 望ましい動作を得るためのより簡単な解決策はありますか?
記録として、私がこの種の動作を望んでいたのは、ToString() を呼び出して文字列を適切にフォーマットすることでオブジェクトのリストを表示する汎用印刷機能だったと思います。
vb.net - VB.NET での ControlCollection の拡張
VB.NETの基本を拡張しControlCollection
て、自作のコントロールに画像とテキストを追加し、それらを自動的にピクチャボックスとラベルに変換できるようにしたいと考えています。
そこで、ControlCollection を継承するクラスを作成し、add メソッドをオーバーライドして、機能を追加しました。
しかし、この例を実行すると、NullReferenceException
.
コードは次のとおりです。
CreateControlsInstance
Google で検索したところ、メソッドをオーバーライドする必要があると誰かが言いました。だから私はそれをしましたが、それはInvalidOperationException
のinnerException
メッセージで与えますNullReferenceException
。
これを実装するにはどうすればよいですか?
c++ - 継承の 2 つ以上のレベルの非仮想インターフェイスのイディオム?
非仮想インターフェイスのイディオムは、仮想メソッドが非パブリック カスタマイズ ポイントであり、パブリック メソッドが非仮想であり、基本クラスがカスタマイズ ポイントの呼び出し方法を常に制御できるようにする方法を説明します。
これはエレガントなイディオムであり、私はそれを使用するのが好きですが、派生クラスがそれ自体が基底クラスである場合、どのように機能しますか?
c++ - 基本クラスのコンストラクターを呼び出すためのルールは何ですか?
派生クラスから基本クラスのコンストラクターを呼び出すための C++ の規則は何ですか?
たとえば、Java では、サブクラス コンストラクターの最初の行としてそれを行う必要があることを知っています (そうしないと、引数のないスーパー コンストラクターへの暗黙的な呼び出しが想定されます。それがない場合はコンパイル エラーが発生します)。 .
c# - 基本型を派生型にキャストする方法
これが奇妙なことなのか、それともコードの臭いなのかはわかりませんが、「キャスト」する方法(ある種のoopパターンがいいでしょう)があるのではないかと思っていました。基本型から派生型の形式へ。派生型には、親が提供しない追加の機能があり、それ自体は基本的に健全ではないため、これはほとんど意味がないことを私は知っています。しかし、これを行う方法はありますか?これが私が求めていることをよりよく説明できるようにするためのコード例です。
私はこれが間抜けに見えることを知っていますが、この種の何かを達成する方法はありますか?
c# - サブクラス関数の NotSupportedException のコンパイル時エラー
基本クラスによって提供される関数をまだ実装していないサブクラスがある場合、その関数をオーバーライドして、NotSupportedException
. 実行時にのみヒットするのを避けるために、これに対してコンパイル時エラーを生成する方法はありますか?
更新: 基本クラスを抽象化できません。
c# - 特定のタイプ (System.Type) が特定の基本クラス (.Net) から継承されているかどうかをどのように判断しますか?
これは簡単な答えになる可能性が高く、何かが欠けているだけですが、ここに行きます...タイプがある場合(つまり、実際のSystem.Type ...インスタンスではありません)、別の特定の基本型から継承しますか?