問題タブ [polymorphism]

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

c# - シャドーイングとは?

C# では、シャドーイングという用語はどういう意味ですか? このリンクを読みましたが、完全には理解できませんでした。

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

c# - サブクラスによるベースクラスからの抽象メソッドの戻り値の型の指定

私は次の構造を持っています:

具体的なサブクラスが何であれ、クラスを返す抽象メソッドを作成したいと考えています。したがって、例からわかるように、 のメソッドSubOneは返す必要がList<SubOne>ありますが、 のメソッドはSubTwoを返す必要がありList<SubTwo>ます。

Base クラスで宣言された署名で指定する型は何ですか?


[アップデート]

投稿された回答に感謝します。

解決策は、次のように抽象クラスをジェネリックにすることです。

0 投票する
9 に答える
3310 参照

c# - C# と C++ の仮想呼び出しの速度

C# での仮想呼び出しのコストは、相対的に言えば C++ ほど高くないことをどこかで読んだことを思い出すようです。これは本当ですか?もしそうなら - なぜですか?

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

c# - WCF のポリモーフィズム

さまざまな種類を格納/取得できる WCF サービスの構築を検討しています。次の例は実行可能であり、許容できる設計と見なされますか?

このサービスを使用する場合、子の型を StoreObject メソッドに渡し、RetrieveObject メソッドから子の型として取得できる必要があります。

より良いオプションはありますか?

ありがとう、ロブ

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

c# - C# - 私が書いていないクラスでポリモーフィズムを使用する

変更できないクラスにポリモーフィックな動作を実装する最良の方法は何ですか? 現在、次のようなコードがあります。

明らかな答えは、基本クラスに仮想メソッドを追加することですが、残念ながらコードは別のアセンブリにあり、変更できません。上記の醜くて遅いコードよりも、これを処理するためのより良い方法はありますか?

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

functional-programming - Standard MLでポリモーフィック値を印刷するにはどうすればよいですか?

Standard ML(具体的にはSML / NJ)でポリモーフィック値を印刷する方法はありますか?私は自分が望むことをしていないポリモーフィック関数を持っていて、SMLでデバッグしているひどい状態のために(実稼働関数型プログラムをデバッグする実際の経験はありますか?)、それがいくつかの良いことで何をしているのかを見たいです- ol' print's。簡単な例は(プロンプトで)次のようになります。

他の提案をいただければ幸いです。それまでの間、問題のあるコードをじっと見つめて提出します。

アップデート

私はバグを見つけることができましたが、将来の痛みや苦しみを防ぐことを期待して、質問はまだ残っています。

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

python - 既存の情報を保持しながら、別のタイプとメッセージで例外を再発生させます

私はモジュールを作成していて、それが発生させる可能性のある例外の統一された例外階層を持ちたいと考えています (たとえば、すべてのモジュール固有の例外のFooError抽象クラスからの継承)。fooこれにより、モジュールのユーザーはこれらの特定の例外をキャッチし、必要に応じて個別に処理できます。ただし、モジュールから発生する例外の多くは、他の例外が原因で発生します。たとえば、ファイルの OSError が原因でタスクに失敗した場合などです。

私が必要としているのは、キャッチされた例外を「ラップ」して、異なるタイプとメッセージを持つようにすることです。これにより、例外をキャッチしたものによって伝播階層のさらに上に情報が利用できるようになります。しかし、既存の型、メッセージ、およびスタック トレースを失いたくありません。問題をデバッグしようとしている人にとって、これはすべて有用な情報です。トップレベルの例外ハンドラーは役に立ちません。なぜなら、例外が伝播スタックのさらに上に行く前に例外をデコレートしようとしていて、トップレベルのハンドラーでは遅すぎるからです。

fooこれは、モジュールの特定の例外タイプを既存のタイプ (例: ) から派生させることで部分的に解決されclass FooPermissionError(OSError, FooError)ますが、既存の例外インスタンスを新しいタイプでラップしたり、メッセージを変更したりすることは簡単ではありません。

Python のPEP 3134「Exception Chaining and Embedded Tracebacks」では、既存の例外の処理中に新しい例外が発生したことを示すために、Python 3.0 で受け入れられた例外オブジェクトの「連鎖」について説明しています。

私がやろうとしていることは関連しています:以前のPythonバージョンでも動作する必要があり、チェーンではなくポリモーフィズムにのみ必要です。これを行う正しい方法は何ですか?

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

c++ - 異なるテンプレート タイプを 1 つのベクターに入れる方法

長さや引数の数が不明なメッセージを作成したいと思います。私は次のような単純なテンプレートを取りました

そして、いくつかの過負荷で

(文字列なども同様) すべてを 1 つのベクトルにプッシュしようとします。私は試した

しかし、これは何も機能していないようです。これを行う方法はありますか?前もって感謝します。