問題タブ [base-class]

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

c# - 派生クラスは C# で基本クラス変数の値を表示できません

次のコードを実行しようとしています

を実行すると、出力として5(の値)が取得されますが、実行すると、出力は(の値) (の値) として出力されます。aaa.show()aaAbb.show()bbB0azb

の正しい値を表示できるのに、保護されていると宣言されているにもかかわらず、派生クラスが a の現在の値を表示できない理由を誰かが説明できますbか?

アップデート:

提案された解決策を試してみます。コンパイルエラーはありませんでしたし、質問にある通りの出力を得ることができました。

0 投票する
3 に答える
382 参照

c# - ac# enum のベース オブジェクトはありますか?

列挙型で継承を使用できないことはわかっているので、基本クラスでは、それを実装するクラスがプロパティの何らかの型の列挙型を返す必要があることを定義したいと考えています。

理想的には、これは次のようになります。

次に、すべての実装者が何らかの形式の列挙型を返す必要があります。しかし、明らかに BaseEnum は存在しません。オブジェクトを使用できますが、使用したくありません。

これを行う良い方法はありますか?

編集:基本的に実装クラスのプロパティの名前を同じに保ちたいので、これを求めています-基本クラスの列挙型を操作できないことはわかっていますが、そうしなかった場合それをベースに置くと、実装クラスは列挙型の独自のプロパティ名を決定できますが、独自の実装に向かってドリフトするため、時間の経過とともに不明になる可能性があります。

0 投票する
3 に答える
348 参照

c++ - C ++のベースクラスのアドレスを保証しますか?

C 構造体では、次のことが保証されています。

さて、C ++で、私が持っている場合:

もしそうなら、参考文献を教えてもらえますか (「C++ プログラミング言語、ページ xyz」など)。

ありがとう!

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

c++ - 基本クラスを介して依存関係を提供する

パーツのリストがあり、そのうちのいくつかはエンジンへのポインターが必要です。それらをEnginePartsと呼びましょう。私が欲しいのは、RTTIを使用してこれらのEnginePartsを見つけて、それらにエンジンを与えることです。

問題は、EnginePartをどのように設計するかです。ここでは、以下に説明する2つのオプションがありますが、どちらを選択すればよいかわかりません。オプション1は仮想機能がないため、より高速です。オブジェクトがなければClone()関数を必要としないため、オブジェクトをClone()する場合は、オプション2の方が簡単です。

何かご意見は?多分3番目のオプションがありますか?

オプション1:

オプション2:

(実際の状況はもう少し複雑であることに注意してください。EngineParts用に別のリストを作成するような単純なソリューションを使用することはできません)

ありがとう

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

visual-studio - Visual Studio ロード デザイン フォーム

フォームから継承するクラスがあり、すべてのフォームがクラスから継承され、ビジュアルスタジオのデザインモードでフォームをロードしようとしたときに、問題に遭遇した人はいますか? 私の場合、「パスに不正な文字」が表示されるため、正しくロードされますか。Visual Studio をデバッグ モードで実行したところ、想定されるファイルのパスをチェックしようとして、一般的な定義の「>」が取得されることがわかりました。Windowsフォームにジェネリックを実装することは可能ですか、それとも回避策を講じる必要がありますか?インターネットでいくつかの例や手がかりを検索しましたが、重要なものを見つけることができました. アプリケーションは正常に動作しますが、ビジュアルスタジオのデザインモードではないため、ポインタをいただければ幸いです。ありがとう。

基本クラス

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

c# - 基本クラスまたは他の関数ファイルから Masterpage プロパティにアクセスするにはどうすればよいですか

次のようにして、通常の ASP.NET C# ページから Masterpage プロパティにアクセスしています。

ページのコード ビハインドでは問題なく動作しますが、基本クラス ファイル内の関数に移動しようとすると、次のようになります。

... 次のエラー メッセージが表示されます。

コンパイラ エラー メッセージ: CS0246: 型または名前空間名 'SecondMasterPage' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?)

基本クラス ファイルは App_Code ディレクトリにあり、そこにある他の関数はエラーなく動作します。この機能が動作しないのはなぜですか? また、この特定の関数のような関数が基本クラス ファイルで機能しない場合、どのページからでも呼び出せるようにするには、どこに配置すればよいでしょうか?

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

c# - ジェネリック基本クラスから実装された型を取得する

タイトルは完全に間違っているかもしれませんが、基本的には次の基本クラスがあります。

これの実装は次のようなものです。

基本的に、私が必要とするのは、基本クラスの ScheduleableService で、 MyScheduledService タイプを取得できるようにすることです-渡さずにこれを行う方法はありますか.

次の作品は、しかし、醜い.....

実装:

0 投票する
3 に答える
2229 参照

c# - 継承されたユーザー コントロールの ASP.NET イベント ライフサイクル

疑似コードを許してください、しかしそれは簡単な質問です:

マークアップにテキスト ボックス (id = "txtbox") を含むユーザー コントロール (myControlBase : UserControl) を作成します。その分離コードで、メソッド SayHello(string s){ txtbox.Text = s; を記述します。}。

myControlBase (myControl : myControlBase) を拡張する別のユーザー コントロールを作成します。この子コントロールの page_load で、SayHello("hello"); を呼び出します。txtbox が null であることを知らせる実行時エラーを受け取ります (明らかにまだ作成されていません)。

では、ユーザー コントロールから継承し、子コントロールがベース コントロールのマークアップにアクセスできるようにするにはどうすればよいでしょうか。これらのコントロールのイベント ライフサイクルについて調べてみましたが、理解できていないようです。

何か案は?

-編集-

すみません、ASP.Netです。このコードでより明確になったとしたら、問題の説明がかなり不十分だったに違いありません。

txtBox は、myControlBase のマークアップに存在する ASP:Textbox コントロールです。

これは SayHello("hello"); で失敗します。txtBox が Null を返したためです。

0 投票する
5 に答える
342 参照

c++ - C++: 継承階層での二重保守の回避

C++ 継承構造を作成する場合、複数の場所でまったく同じメンバー関数を定義する必要があります。

B が抽象基本クラスで、D、E、および F がすべて B から継承されている場合、次のようになります。

したがって、ここには明らかに重複があります。B へのインターフェイスが大きい場合、インターフェイスを変更する必要がある場合、変更する場所が多くなる可能性があります。

同僚は、巧妙に作成された #includes を埋め込んだいくつかの策略を提案しました。

これは少し不器用に見えますか?それは...ですか?二重メンテナンスを避けるためのより良い解決策はありますか?

また、ここでの解決策は、Visual Assist X のような言語をサポートするための本当に優れたツールでしょうか?

編集:派生クラスには一意の実装が必要であると仮定します。

0 投票する
3 に答える
2036 参照

c# - 基本クラスからサブクラスの新しいメソッドを呼び出す

私はこのようないくつかのクラスを持っています

正しく動作し、「METHOD FROM C」を出力します

しかし

もし私がこのような状況にあったら

「METHOD FROM A」と表示されます。キャストを採用したり、オーバーライドでメソッド宣言を変更したりせずに、最初の例と同じ動作を取得するにはどうすればよいですか?