問題タブ [method-signature]

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

vb.net - デリゲートと ParamArray - 回避策の提案?

一部の定義済みメソッドには、署名にParamArrayが含まれています。ただし、デリゲートの署名に ParamArray を含めることはできません。

質問: ParamArray を必要とする特定のメソッドの委任メカニズムを作成したいとします。この制約をどのように回避しますか?

EDIT:明確にするために、メソッドシグネチャ自体を変更できないと仮定します(Microsoftかどうかに関係なく、サードパーティによって定義された事前定義されたメソッド)。

EDIT2:次のコードは機能しますが、砂糖を排除するため、ここでの本当の取引は構文 sugar を維持することです:

EDIT3: Skeet のソリューションは、ParamArray を含むイベントとオペレーターの作成にも適用できることがわかりました。

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

.net - .NET 4 のクラスが共変でないのはなぜですか?

重複の可能性:
C# 4.0 のクラスに一般的な差異がないのはなぜですか?

新人プログラマーとして、.NET 4 のバリアンスについていくつか質問があります。それがどのように機能するかということではなく、特定のものがバリアントでない理由と、他の人にとってこれが役立つかどうかについてです。

質問1:

.NET 4 では、インターフェイスとデリゲートが共変/反変になる可能性があることは知っていますが、なぜクラスではないのでしょうか? だから、質問1:

これはどういうわけか安全ではありませんか?これは役に立ちませんか?


質問2:

質問 2 は質問 1 から続きますが、分散よりも署名を扱う場合があります。MustOverride メンバーを持つ MustInherit クラスがあるとします。

派生クラスで、SomeClass をオーバーライドして BaseClass の派生クラスを返すことができないのはなぜですか? これは危険ですか?署名が継承関係をチェックしていないだけですか?

これが.NET 4で許可されていない理由についての洞察をいただければ幸いです。

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

overriding - C# - オーバーライドClassName を使用したメソッド署名?

<T>ClassNameを使用する抽象クラスのメソッド シグネチャをオーバーライドして、オブジェクトを再キャストせずに参照渡しできるようにする方法はありますか?

たとえば、オブジェクト マネージャーがたくさんあります。それらすべてに、オブジェクトの状態 (挿入、更新、削除など) に基づいて適切な保存アクションを実行する .Save(Object) メソッドを含める必要があります。

これらのメソッドを含む基本クラスを作成しようとしていました:

そして、継承されたクラスが次のようなものを使用してメソッドを定義することを望みました:

私の問題は、それが に<T>なること<Consumer>を指定でき<T>ないことです。

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

c++ - C++: オーバーロードされた非仮想メソッドと仮想メソッドの両方を同じ名前で継承すると問題が発生する

パラメーター リストが異なる 2 つの同じ名前のメソッドを派生クラスに継承しようとしています。そのうちの 1 つは仮想であり、派生クラスでオーバーライドされます。もう 1 つは非仮想です。そうすると、派生クラス オブジェクトから基底クラスの非仮想メソッドにアクセスしようとすると、コンパイル エラーが発生します。

ここにコードスニペットがあります

次のコンパイル エラーが発生します。

エラー: 'Deriv::f()' の呼び出しに一致する関数がありません<br /> 注: 候補は: virtual void Deriv::f(int)

私は C++ の専門家ではありませんが、これまでは、メンバー メソッドはシグネチャによって完全に区別できるという仮定が正しいと考えていました。したがって、非仮想メソッド Base::f() をオーバーライドしてはならず、アクセス可能なままにしておく必要があります。私はこれで間違っていますか?

これに関する興味深い/追加のコメントを次に示します。

    - オーバーライド メソッド Deriv::f(int arg) も非仮想である可能性があります。エラーはどちらの方法でも発生します
    -エラーは消えます/回避できます...
      ... Deriv オブジェクトを Base クラスにキャストすることにより ... Deriv で
      Base::f(int arg) をオーバーライドしない場合
      ... コマンド「Base::f;」を追加することにより Derivの公開部分へ

このコンパイル エラーを回避する方法は既に知っているので、主にこのエラーが発生する理由に関心があります。

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

java - メソッドの引数に「このクラス」と入力できますか?

インターフェイスのメソッド シグネチャに「このクラス」型の引数を持ちたいので、たとえばMyClass、それを実装する任意のクラスが型の引数を持つそのメソッドを持つようにしますMyClass

pre>public class MyClass implements MyInterface { // has to reference this class in the implementation public MyClass myMethod(MyClass other){ ... } } これは可能ですか、それとも引数をインターフェイスにバインドして、各実装でチェックする必要がありますか?

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

jquery - jQuery のコールバック引数が一貫していないのはなぜですか?

jQuery 内の一般的なパターンは、配列の要素とその配列内のインデックスを渡されるコールバックを受け取るメソッドです。ただし、どちらの引数が最初に来るかは完全にランダムに見えます。たとえば、http://api.jquery.comの jQuery ドキュメントから:

  • jQuery.each( collection, callback(indexInArray, valueOfElement) )
  • .each( function(index, Element) )
  • jQuery.map( array, callback(elementOfArray, indexInArray) )
  • .map( callback(index, domElement) )
  • jQuery.grep( array, function(elementOfArray, indexInArray), [ invert ] )
  • .filter( function(index) )

3 つのケース ( jQuery.each.each.map) では、インデックスが最初に来ます。他の 2 つ ( jQuery.grep, jQuery.map) では、要素が最初に来ます。APIが設定されたことは知っていますが、私には矛盾しているようです。

私が見逃しているパターンはありますか、それともランダムですか? これを修正する必要がありますか、それとも黙って暗記する必要がありますか?

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

php - 送信するものが多い場合に関数に値を渡す最良の方法は?

関数に多くの値を渡す必要があり、これらの一部はオプションである可能性がある場合に、メソッドシグネチャを定義するための最良の方法は何ですか。そして将来的には、より多くの変数を渡すか、関数に与えられたいくつかの渡された値を減算する必要があるかもしれません。

例:(電話とアドレスはオプションです)

また

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

java - Javaはどのようにしてメソッドの署名を生成しますか?

静的なfinalメソッドgetAllを持つJavaクラスがあります。

ここで、where statemantの値としてnullを渡して、コードの後半で無視されるようにします。とにかく、このメソッドのテストケースには次のようなものがあります。

次に、NoSuchMethodErrorが発生します。なぜそうなるのか正確にはわかりません。私が想像できる唯一のことは、私が渡したnullが上記のメソッドのシグネチャと一致しないということです。しかし、どうすればこれを克服できますか?私はすでにオーバーロードについて考えました。しかし、これはほとんどのコードを書き直すことで終わります。少なくとも私がそれをするとき、私はどう思いますか。

それについて何か提案はありますか?

フィル

PSこれは私が取得したスタックトレースです:

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

java - jarファイルから関数sinaturesを取得するにはどうすればよいですか?

EclipseまたはNetBeansでは、関数を「制御+クリック」すると、jarファイル内であっても、少なくともその署名全体を見ることができます。

jarファイルからすべての関数シグネチャを引き出すツールを作成できるかどうか疑問に思っています。このためのAPIはありますか?

jDependがこのための関数を提供しているようだと私は知っています。ただし、これを行うには、より一般的な方法がいくつかあると思います。