問題タブ [subclassing]

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

wpf - WPF ウィンドウのサブクラス化

WPFウィンドウを作成しました

クラス定義を次のように変更したよりも:

コンパイラがスローします:

「'myWindow' の部分宣言では、異なる基本クラスを指定してはなりません」

myWindow.Xaml:

そのため、「ウィンドウ」から継承する別の部分クラスがありますが、見つかりません。サブクラス化されたウィンドウを使用するようにケースをオーバーライドするにはどうすればよいですか?


ありがとうジョン、それが問題だった。この役立つ記事も見つかりました: http://geekswithblogs.net/lbugnion/archive/2007/03/02/107747.aspx

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

objective-c - Objective C - 複数の init-method を持つクラスのサブクラス化

複数の初期化メソッドに新しい引数を追加する便利な方法を探しています。説明するのは少し難しいですが、私の問題は次のとおりです。

さまざまな初期化メソッドを実装するクラス ウィッチがあります。フェ

ここで、クロスヘア クラスをサブクラスとして作成します。したがって、インスタンス変数としていくつかの行を追加したいと思います。問題は、すべての crosshair-object を特定の値で初期化する必要があることですが、もちろん、円を初期化する方法は変更されません。そのため、スーパークラスのすべての init-method が必要ですが、それらの特定の引数をそれぞれに追加します。

(経験の浅い私の目には)直接的な方法は、魔女の各メソッドを上書きしてから、それに応じたスーパーメソッドを呼び出し、その後自分のことを行うことです。しかし、10 個以上の init メソッドがあり、それぞれに同じ引数を追加したい場合、これは非常に面倒です。それで、これを達成するためのより良いアプローチがあるかどうか尋ねていますか?スーパークラスを変更する機能がある場合とない場合があります。

どうもありがとう

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

iphone - すでに存在するクラスからカスタムクラスを作成するにはどうすればよいですか?(既存のクラスはNSCodingをサポートしていません)

私がやろうとしているのは、をに変換しEKEventNSDataから、に変換して戻すことEKEventです。

周りを見回して、を使用するNSKeyedArchiverには、クラスがNSCodingプロトコルに準拠している必要があることに気付きました。NSCodingまた、カスタムクラスを作成する場合、そのようなカスタムクラスに実装することで、プロトコルに準拠させることができることもわかりましたencodeWithCoder:

基本的に、自分を変換EKEventしたりNSData、元に戻したりするには、カスタムクラスを作成する必要があると思います(これを呼び出しますCustomEvent)。次のことを行う必要があります。

encodeWithCoder:準拠させるために実装する例外を除いて、既存のクラスを複製するカスタムクラスを作成する方法を学ぶのに助けを得ることができますNSCodingか?

私はEKEvent.hを見ていますが、他のクラスも複製する必要があることを知っています(それらも準拠していないためNSCoding)。誰かが私にチュートリアルリンクを送ったり、私を助けたりできますか?

前もって感謝します!

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

c++ - C++ subclassing a form to trap F1 - F12 keys

The main form opens a child form that has a handful of button CONTROLs on it. I need to trap keyboard events so I subclassed one of the controls. All is good until the control loses focus of course.

Ideally, as long as this child form is open I would like to assign the focus to this control and thus trap all the keystrokes, no matter where the user clicks.

I suspect superclassing might be a better way to go but I am not as familiar with it.

Perhaps what I should do is use accelerators on the main form?

ADDED: I should mention that the main form has a large listview control that is subclassed to recover up/down arrows and mousewheel etc.

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

python - Python デコレータとクラス継承

ユーザーが Web アプリケーション (Google App Engine で実行されている) 内のリソースにアクセスする方法とアクセスしない方法を管理するために、デコレータを使用しようとしています。ユーザーが Google アカウントでログインすることを許可していないため、app.yaml 内の特定のルートに特定のアクセス権を設定することはできません。

私は次のリソースを使用しました:
- Bruce Eckel のデコレータのガイド
- SO : get - class
- in-python - decorator2

しかし、私はまだ少し混乱しています...

これが私のコードです!次の例では、 current_user は RequestHandler クラスに属する @property メソッドです。データストアに格納された User(db.model) オブジェクトをレベル IntProperty() で返します。

ただし、私のアプリケーションでは、さまざまな種類のリソースに対してさまざまなコントローラーを使用しています。すべてのサブクラス内で @requiredLevel デコレーターを使用するには、それを親クラス (RequestHandler) に移動する必要があります。

私の考えは、次のコードを使用して、すべてのコントローラー サブクラスのデコレーターにアクセスすることです。

デコレータとクラス継承に関する私の知識の限界に達したと思います:)。何かご意見は ?

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

iphone - UITextViewで選択機能を無効にする方法は?

(1) スクロールを許可し、(2) 選択を許可しないテキスト表示領域 (UILabel または UITextView) を iPhone アプリに作成したいと考えています。次の手法を試しましたが失敗しました。

  1. Basic UILabel: スクロールが許可されず、テキストが画面上の UILabel スペースの下部にクリップされました。
  2. UIScrollView 内の巨大な UILabel: UILabel はテキストを巨大な UILabel の中央に (垂直に) 配置し続けたため、UIScrollView の外側にあることがよくありました。
  3. UITextView: これまでのところ、このアプローチはスクロールしてテキストをクリップしないため、最もうまく機能しています。UITextView をサブクラス化して、 textview 内に収まるようにテキストのサイズを変更し、タッチ イベントをスーパービューに渡してタップとスワイプを検出することもできます。ただし、ユーザーがテキスト自体をタップ アンド ホールドすると、テキスト選択インターフェイスが表示されます。私はこのインターフェイスには興味がありません。実際、ユーザー エクスペリエンスの妨げになっています。をサブクラス化しようとしましcanPerformAction:withSender:たが、どうやらこの関数はタップ イベントの前ではなく、後で呼び出されます。

スクロールも無効にせずに、UITextViewでテキスト選択インターフェイスを無効にする方法を知っている人はいますか?

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

oop - 分類に関するモデリングの質問。サブタイプにするかどうか?

この単純な分類 (?) の例をモデル化する方法についてアドバイスが必要です:
私は製品を持っています。製品は、ProductType 1、ProductType 2、ProductType 3 などのさまざまなタイプにすることができます。すべての製品には部品番号と名前があります。それらが異なるのは、価格の計算方法です。

  • タイプ 1 の製品の価格は、製品の数によって異なります。したがって、5 つの製品がある場合、価格は $x です。20 個の製品がある場合、価格は $y などになります。
  • タイプ 2 の製品の価格は、各製品の重量によって異なります。重量が 5 kg の場合、価格は $x などになります。
  • タイプ 3 の製品には、各製品の $x のような単純な価格があります。

私の見方では、各「価格構造」には専用のテーブル/クラスが必要です。製品は、製品のタイプに応じて、その価格構造への参照を持ちます。「製品タイプ」テーブルを作成して、製品クラスにタイプという属性を持たせますか?それとも、一般化を使用して、製品 1/2/3 が製品のサブタイプになるようにしますか? 5 種類の料金体系があり、料金の計算方法はタイプごとに異なります。したがって、注文の合計金額を計算するロジックは、各商品タイプに依存します。

これを最良の方法でモデル化する方法についてアドバイスをいただけますか? Product クラスに Type 属性があるアプローチを選択すると、コード内に多数の if-else ステートメントが作成されると思います。それらをサブクラス化することを選択した場合、各クラスは正しい価格を計算するか、または要求されたことは何でも責任を負うことができます。

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

java - メソッドから動的に割り当てられたクラスのオブジェクトを返す

これにはおそらく非常に単純な解決策がありますが、私はそれを理解できないようです...
クラス DimensionQuantity を拡張する、DistanceQuantity、AreaQuantity などの形式の xQuantity のクラスがたくさんあります。これで、DistanceQuantity や AreaQuantity などを加算または減算できますが、それらを混合することはできません。すべてのサブクラスには、add()、subtract()、ge() などのメソッドがあるため、共有ロジックを DimensionQuantity に入れるとよいのですが、キャストの問題が引き続き発生します。

これまでのところ、私が思いついた最善の方法は、オブジェクトを生成し、それをサブクラスのメソッドにキャストすることですが、サブクラスの add() (および他の同様のメソッド) を完全に削除することをお勧めします! コードは次のとおりです (一部省略しています)。

DistanceQuantity:

ディメンション数量:

誰か(または誰か)がより良い方法を提案できますか?!

0 投票する
6 に答える
4731 参照

c++ - Windows CEで単一行のEDITコントロールのEnterキーを押したときにビープ音をオフにするにはどうすればよいですか?

C ++とネイティブWINAPIを使用して(つまり、MFCなどを使用せずに)POCKET PC 2003(Windows CE 4.2)デバイスを対象としたアプリケーションを開発しています。その中には、メインウィンドウのどの部分(ダイアログではない)を1行で編集するコントロールがあります。したがって、Enterキーを押したときのWindowsの通常の動作は、ビープ音だけです。

次のコードを使用して、編集コントロールのウィンドウプロシージャをサブクラス化し、デフォルトの動作をオーバーライドしました。

これにより、「OK」ボタンを押すのと同じ動作が発生します。

ここで問題になります。このウィンドウ手順は、ビープ音を鳴らすデフォルトの動作を上書きしません。ENTERが押されたときにトリガーされ、キャプチャに失敗したメッセージが他にあるに違いないと思います。どちらかわからない。アイテムの衝突が発生したときに特定の状況で再生される他の音を台無しにするので、デバイスがビープ音を鳴らさないようにしたいのですが、ユーザーにそのことを警告することが重要です。

前もって感謝します。

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

java - スーパークラス メソッドからサブクラス オブジェクトを返す

私はこの問題の変種に戻ってきます。おそらく非常に単純な解決策がありますが、それを理解できないようです...

クラス DimensionQuantity を拡張する、DistanceQuantity、AreaQuantity などの xQuantity 形式のクラスがたくさんあります。これで、DistanceQuantity や AreaQuantity などを加算または減算できますが、それらを混合することはできないため、サブクラスに (短い) 加算、減算などのメソッドが必要だと思いますが、ロジックを削減したい重複は最小限に。ただし、サブクラスのオブジェクトを返す必要があり、これをスーパークラスのメソッドから行うのは難しそうです。これはリフレクションを使用して実行できると思いますが、サブクラス メソッドの最後にキャストを行う必要があることがわかります。リフレクションはコストがかかる可能性があると言われています...これまでに思いついた最高のものは次のとおりです。

DistanceQuantity (および他の同様のもの) で:

DimensionQuantity で (関連性の低いいくつかのステートメントを差し引いて):

より無駄のないコードを思い付くことができる人はいますか?それはまだ型安全です? ティア