問題タブ [overloading]

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

php - クラスの定義済みフィールドにPHPの__get()および__set()を使用するにはどうすればよいですか?

オーバーロードに関するPHPの仕様をよく読んだことがありますが、ほとんどの例は、カスタムフィールド(stdClassと同様)の定義を単純に許可することを目的としているようです。

しかし、私のクラスで定義されているプラ​​イベートフィールドはどうですか?これらはどのように取得/割り当てられる必要がありますか?可能な値を切り替えて、特定の値に基づいて行動することができます。

これが最良の方法ですか、それとも一般的に受け入れられている別のベストプラクティスがありますか?(クラス内でクラス変数をループできるかどうかはわかりませんが、すべてを返したくないので、ほとんどの状況では適切ではありません。)

0 投票する
4 に答える
760 参照

c# - メソッドのオーバーロード

TemplateA型のパラメーターを使用してEntryPointを呼び出すと、最初のオーバーロードが常に呼び出されるため、常に例外が発生します。
私が予想したことは、動的バインディングのために最も具体的なメソッド(2番目のオーバーロード)が呼び出されることです。
なぜ何かアイデアはありますか?

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

c# - メソッドのオーバーロードとポリモーフィズム

管理者がユーザーに表示されるさまざまなデータ入力フォームをカスタマイズできる .NET Web アプリケーションを作成しています。管理者が作成およびカスタマイズできる約 6 種類のフィールド タイプ (テキスト、数値、ドロップダウン、ファイル アップロードなど) があります。すべてのフィールドは、一連の基本属性/動作を共有します (フィールドは必須ですか? デフォルトのフィールド値はありますか?)。一連のフィールド固有の属性/動作もあります (つまり、ドロップダウンにはデータ ソース属性がありますが、テキスト フィールドにはありません)。簡単にするために、問題領域の他の多くの特徴を省略しています。

クラス階層は単純です。一般的な動作/属性をカプセル化する抽象的なスーパークラスと、フィールド固有のものを処理する約半ダースの具体的なサブクラスです。

各フィールド タイプは、特定のタイプの .NET サーバー コントロールとしてレンダリング (マップ) されます。これらはすべて System.Web.UI.Control から派生します。

フィールド ドメイン オブジェクトとそれに対応する UI コントロールの間で値をマッピングするために、次のコードを作成しました。

型チェックを実行する無礼な if ステートメントを捨てたいと思います。私が目指していたアプローチは、サブクラスの型付けを使用して、フィールド/コントロールの組み合わせごとにメソッドのオーバーロードを作成することでした。例えば:

次に、.NET に依存して、使用されている特定のサブクラスを使用して、実行時に適切なオーバーロードを呼び出すことができることを期待していました。たとえば、次のようになります。

残念ながら、次のようにしようとすると、コンパイラがチョークします: Argument '1': cannot convert from 'System.Web.UI.Control' to 'TextBox'.

最初の引数を TextBox にキャストする必要がある場合は、自分で型チェックを実行することに戻り、この演習の目的全体を無効にします。

私が達成しようとしていることは、a) 可能で、b) 良いアイデアですか?

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

linq - Linq to SQL SP パラメータ

linq から呼び出したい SP があります。SPには5つのパラメーターがありますが、そのうちの2つだけを渡したい/必要です。

5つすべてが必要なため、コードにパラメーターを追加するときにSPを呼び出すにはどうすればよいですか。

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

c# - C#4.0とオプションのパラメーターとオーバーロードの組み合わせにより、あいまいさに関する警告が表示されますか?

私はジョン・スキートの彼の本の早期アクセス版を読み始めました。これにはC#4.0のセクションが含まれていますが、私は1つのことに気づきました。残念ながら、私はVisual Studio 2010を利用できないので、代わりにここで質問して、誰かが答えを知っているかどうかを確認したいと思いました。

次のコード、既存のコードと新しいコードの混合物がある場合:

コンパイラは、定義サイトまたは呼び出しサイトのいずれかで、あいまいさの可能性について不平を言いますか?

たとえば、このコードは実際に何をしますか?

コンパイルされますか?zパラメータのないものを呼び出すのでしょうか、それともzパラメータのあるものを呼び出すのでしょうか。

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

c++ - コンパイラはどのメンバー関数が変異するかをどのように判断しますか?

私の投稿の1つへのコメントは私に興味を持った:

私も。また、アクセサー/ミューテーターにも同じ名前を付けます。

setBar(int bar)同じ名前のミューテーターの代わりにいつも使っていたので、これについて疑問に思いました。知りたいのですが、コンパイラはconst識別子に基づいて実行時に何が変化するかを判断できますか、それともパラメータがあるため同じ関数名を使用できますか?

これはうまくコンパイルされますか?

または、これを実行する必要がありますか(とにかくこれを実行する必要があることを認識しています。これについては、一緒に実行してください)。

どっちがどっちかわからない。定数の正確さは重要なので、1つは変更し、もう1つは変更しないので、コンパイラーにオーバーロードに反対してもらいたいと思います。

なぜこのように機能するのですか?

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

javascript - javascriptでプロパティを作ることはできますか?

数値をインデックスとして受け取るカスタム オブジェクトを作成したいのですArrayが、インデックスの値に応じて、計算された値を返します。

例えば:

示されている例では、関数の方が優れていることはわかっていますが、概念的な配列であるが計算が必要になる可能性のあるもののプロパティ/インデックスルックアップをオーバーライドできるかどうかを知りたいです。

私はそれを知っているx.1 == x[1]ので、必要なのはJavaScriptでプロパティを作成することです。

つまり、 を作るx.variable = x.myPropery()ので、 の値を取得するx.variableたびに の戻り値を受け取りますx.myPorperty()

これは可能ですか?

0 投票する
4 に答える
3820 参照

c# - 両方のオーバーロードが同じシグネチャを持つ場合にコンストラクターのオーバーロードを呼び出す

次のクラスを考えてみましょう。

上記のコードは無効であり、コンパイルできません。次のコードを考えてみましょう。

上記のコードは有効であり、適切にコンパイルされます。Foo(int count)を呼び出します。

私の質問は、最初のものが無効な場合、2 番目のものはどのように有効になるのでしょうか? T と int は異なる型であるため、クラスFoo<T>が有効であることはわかっています。しかし、Foo<int> foo = new Foo<int>(1)のように使用すると、 T は整数型になり、両方のコンストラクターが同じ署名を持ちますか? 実行するオーバーロードを選択するのではなく、コンパイラがエラーを表示しないのはなぜですか?

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

c# - C#、XmlDoc: メソッドのオーバーロードを参照する方法

この2つの方法があれば

そして、別の方法でこのxmlドキュメントを書きます

の下に青い波線が表示されGetあいまいな参照 'Get'であることがわかります。これは本当ですが、両方を参照したいと思います。これを行う正しい方法は何ですか?それとも、単一のメソッド オーバーロードのみを参照する必要がありますか?

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

c - C99 が関数のオーバーロードをサポートしていない理由はありますか?

どうやら (少なくとも によるとgcc -std=c99) C99 は関数のオーバーロードをサポートしていません。C でいくつかの新機能をサポートしない理由は通常、下位互換性のためですが、この場合、関数のオーバーロードによって下位互換性が損なわれるケースは 1 つも思いつきません。この基本機能を含めない理由は何ですか?