問題タブ [optional-parameters]

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 に答える
193 参照

c++ - デフォルトのパラメーター値を必要とするテンプレート関数の推奨設計は何ですか?

私は現在、関数テンプレートでいっぱいの API の整理に取り組んでおり、次のコードを書きたいという強い願望がありました。

このテンプレートを呼び出すときは、次のようにしたいと思います。

残念ながら、コンパイラはオプションのパラメータの型を推測できないため、2 番目の呼び出しはコンパイルされません。これは残念なことです。なぜなら、私はパラメーターの型が何であるかはあまり気にせず、その値が NULL であることを気にしているからです。また、3 回目の呼び出しのルートは可読性を損なうので避けたいと思います。

これにより、テンプレート引数にデフォルトの型を持たせようとしましたが、V(少なくとも VC++ 9.0 を使用して) 関数テンプレートの引数にデフォルトの型を適用できないため、これも機能しません。

私の残りの唯一のオプションはdoWork、テンプレート引数について何も知らない のオーバーロードを導入することVです。

これは、この問題を解決するための最良のアプローチですか? 私が見る唯一の欠点は、関数テンプレートに適切なデフォルトを持つ多くのパラメーターが含まれている場合、多くの単純な転送関数を導入できる可能性があることです。

0 投票する
7 に答える
598 参照

c# - C# が手動のインライン メソッドをサポートしない理由はありますか? オプションのパラメータはどうですか?

そのための設計上の理由はありますか(多重継承を放棄した理由など)?

それとも十分に重要ではありませんでしたか?

同じ質問がメソッドのオプションのパラメーターにも当てはまります...これはすでにvb.netの最初のバージョンにありました...したがって、MSがオプションのパラメーターを許可しない原因となる怠惰、おそらくアーキテクチャの決定..そして彼らが持っていたようですC#4にはそれが含まれるので、それについての心変わり..

決定が何であり、なぜそれをあきらめたのか誰か知っていますか?

編集:

たぶん、あなたは私を完全に理解していませんでした。私は最近、計算プログラム (最後の桁まで、あらゆるサイズの数値をサポートする) に取り組んでいます。このプログラムでは、1 秒あたり文字通り何百万回も使用されるメソッドがあります。

Add(int num) というメソッドがあり、このメソッドはパラメータ ( Add(1);) として 1 を使用して静かに使用されているとします。特に 1 つのメソッドに対して特別なメソッドを実装する方が高速であることがわかりました。numそして、オーバーロードを意味するのではありません- AddOne と呼ばれる新しいメソッドを作成し、その中に Add メソッドを文字通りコピーし1ます。これはひどく奇妙に思えるかもしれませんが、実際にはより高速です。

(醜い限り)

ここで驚くほど役立つ手動インラインを C# がサポートしていないのはなぜかと思いました。

ありがとう。(そして、なぜあなたは私に反対票を投じたのですか:S)

編集2:

これを追加するかどうかを自問しました。私は、そのようなプロジェクトに dot net などのプラットフォームを選択することの奇妙さ (および欠点) をよく知っていますが、dot net の最適化はあなたが思っているよりも重要だと思います... 特に Any CPU などの機能.

0 投票する
8 に答える
23169 参照

c# - ASP.NET SOAP Web サービスのオプション パラメーターを指定できますか

このシグネチャを使用して、param2 が空のままの場合に例外をスローしない Web サービスを構築したいと考えています。これは可能ですか?

例外は、空の文字列をブール値に変換しようとしたときにスローされる System.ArgumentException です。

これまでうまくいかなかったアイデア:

  • メソッドのオーバーロードは、次のような Web サービスでは許可されていません。

    /li>

ここで提案されているように:

私の質問はこの質問に関連していますが、唯一の回答は、まだ使用していない WCF 契約を指しています。

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

sql - SQL 2008ストアドプロシージャのオプションのwhere句/パラメータ?

テーブルを更新するコードを書いています。ユーザーが何をしたいかに応じて、レコードの大きなセットまたは小さなセットのいずれかを更新します。描写要素はグループIDです。

ユーザーは、すべてのレコードのテーブルを更新するか、そのgroupIDを持つレコードのみを更新するかを選択できます。両方のインスタンスで同じストアドプロシージャを使用したいと思いますが、シナリオを区別するためのロジックが少し含まれている可能性があります。(90%同一のコードで2つのストアドプロシージャを記述したくない。)

私はストアドプロシージャの専門家ではなく、groupIDが存在するかどうかに応じて、オプションのパラメーターを渡すことができるかどうか、またはwhere句の一部を動的に生成する方法がわかりません。どんな提案でも大歓迎です。

ありがとう!

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

wcf - WCF 操作に新しいパラメーターを追加する: 選択肢?

クライアントが WSDL を更新する必要なく、新しい (オプションの) パラメータを既存の操作に追加するのに最適な方法は何ですか? サービス コントラクトの新しいバージョンを記述するために名前空間を更新したくありません。これは古いクライアントとの下位互換性があるはずだからです。

オーバーロードとして、新しいパラメーターを使用して新しい操作を追加する必要がありますか? それとも、既存の操作にパラメーターを追加するだけですか?

これが私の操作です:

それは次のとおりです。

またはもっと簡単に、これを次のように変更します。

後者のオプションが最適と思われ、私の参考書によると、「クライアントへの影響はありません。新しいパラメーターはサービスでデフォルト値に初期化されます。WCF はそれをいわゆるデフォルト値に初期化していますか?」もしそうなら、デフォルト値は何ですか?

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

asp.net - 「?」の使い方 mvcの演算子?

?MVC アプリケーションがあり、このオプションを使用したいと考えています。

どうすればこれができるか教えてください。私は書いた:

しかし、データベースに値を挿入する際に、どのように使用すればよいですか?

次のエラーが発生しています:

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

powershell - 相互に排他的な PowerShell パラメーター

シナリオ

  • Visual Studio 2008 と .NET 3.5 を使用して、Powershell 2.0 のコマンドレットを作成しています。
  • コマンドレットには 3 つの引数が必要です。

コマンドレットの意図した文法は次のようなものです。

  • ユーザーは「-foo」または「-bar」の値を指定する必要がありますが、両方を一緒に指定することはできません。

有効な入力の例

無効な入力の例

私の質問

  • 私の質問は、powershellでこれを行う方法についてです。これにより、すべてのチェックが行われるようになります-または、それが可能かどうか。
  • foo と bar の 2 つのオプション パラメータを使用して、手動でエラー チェックを行うだけでよいことはわかっています。それが私が現在実装している方法です。
  • あるいは、さまざまなアプローチの提案に興味があります。
0 投票する
3 に答える
282905 参照

sql-server-2008 - SQL Serverストアドプロシージャのオプションパラメータ?

SQL Server 2008 でいくつかのストアド プロシージャを作成していますが、ここでオプションの入力パラメーターの概念が可能かどうか疑問に思いましたか?

使用したくないパラメーターには常に NULL を渡し、ストアド プロシージャの値を確認してから、そこから取得できると思いますが、ここでその概念が利用できるかどうかに興味がありました。ありがとう!

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

php - CodeIgniter のオプション パラメータ

オプションのパラメーターを取ることができる CodeIgniter コントローラーに関数を記述しようとしています。ただし、引数が見つからないという警告が常に表示されます。警告を抑制しようとしているのではありません-パラメーターをオプションとして宣言しようとしています(存在しない場合は空の文字列になる可能性があります)。

私が見逃しているのは何ですか?

ありがとう
マラ