問題タブ [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 投票する
6 に答える
55137 参照

c# - インターフェイスのオプションのパラメータ

c#4.0の使用-インターフェイスと、インターフェイスを実装するクラスを構築します。インターフェイスでオプションのパラメータを宣言し、それをクラスに反映させたい。だから、私は次のものを持っています:

これはコンパイルされますが、正しく見えません。インターフェイスにはオプションのパラメータが必要です。そうしないと、インターフェイスメソッドのシグネチャに正しく反映されないためです。

オプションのパラメーターをスキップして、null許容型を使用する必要がありますか?それとも、これは副作用や結果なしに意図したとおりに機能しますか?

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

visual-studio-2008 - Visual Studio 2008CrystalReportsのオプションのパラメーター

VisualStudio2008でCrystalReportを開発しています。

ユーザーが特定のフィールドに値や範囲を指定する必要がないように、オプションのパラメーターを実装しようとしています。基本的に、これは、ユーザーが望む場合、そのフィールドでフィルタリングが行われないことを意味します。

しかし、私はこれを行う方法を理解できないようです。誰かアイデアはありますか?

さらに情報が必要な場合はお知らせください。

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

.net - 名前付きおよびオプションのパラメーター、およびWCF

そのため、.Net 4は、かなり甘い名前付きおよびオプションのパラメーターを追加しました。1行のオーバーロードメソッドをたくさん作成する必要はありません。

それはWCFで機能しますか?

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

parameters - オプションのパラメーターを持つオーバーロードされたメソッドの競合

オーバーロードされたメソッドが 2 つあります。1 つはオプションのパラメーターです。

今私は電話します:

興味深いことに、最初のオーバーロードが呼び出されます。オプションの値がゼロに設定された 2 番目のオーバーロードではないのはなぜですか?

正直なところ、コンパイラがエラー、少なくとも間違ったメソッドの意図しない実行を避けるための警告をもたらすことを期待していました。

この動作の理由は何ですか? C# チームがそのように定義したのはなぜですか?

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

c# - オプションの非システム型パラメータ

C#4.0 では、私がかなり長い間待ち望んでいたオプションのパラメーターが導入されました。ただし、 System 型のみが になる可能性があるためconst、作成したクラス/構造体をオプションのパラメーターとして使用できないようです。

より複雑な型をオプションのパラメーターとして使用できるようにする方法はありますか。それとも、これはただ生きなければならない現実の1つですか?

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

c++ - オプションのパラメータの退屈さを避ける

たとえば、2 つの必須パラメーターと 4 つのオプション パラメーターを持つコンストラクターがある場合、デフォルト パラメーターを使用した場合に作成しなければならない 16 個のコンストラクター、または 10 個ほどのコンストラクターを作成することを回避するにはどうすればよいでしょうか (これは貧弱なので好ましくありません)。自己記録)? テンプレートを使用して退屈を軽減するために使用できるイディオムや方法はありますか? (そして維持しやすい?)

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

c# - オプションのパラメーターのデフォルト値として String.Empty を使用することはできません

Bill Wagner による効果的な C#を読んでいます。Item 14 - Minimize Duplicate Initialization Logicでは、コンストラクターで新しいオプションのパラメーター機能を使用する次の例を示しています。

public MyClass(int initialCount = 0, string name = "")

""彼がの代わりに使用したことに注意してくださいstring.Empty
彼は次のようにコメントしています。

[上記の例で] 2 番目のコンストラクターがnameパラメーターの既定値として "" を指定したことに注意してくださいstring.Empty。これstring.Emptyは、コンパイル時の定数ではないためです。文字列クラスで定義された静的プロパティです。これはコンパイル定数ではないため、パラメータのデフォルト値には使用できません。

string.Emptyすべての状況で静的を使用できない場合、それはその目的を無効にしませんか? 空の文字列を参照するシステムに依存しない手段があることを確認するために、これを使用すると考えました。私の理解は間違っていますか?ありがとう。

更新
フォローアップのコメントです。MSDNによると:

オプションの各パラメータには、その定義の一部としてデフォルト値があります。そのパラメーターに引数が送信されない場合は、デフォルト値が使用されます。デフォルト値は定数でなければなりません。

System.Environment.NewLineその後、どちらも使用することも、新しくインスタンス化されたオブジェクトをデフォルト値として使用することもできません。私はまだVS2010を使用していませんが、これは残念です!

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

c - GLibでコマンドラインオプションを必須にする方法は?

私はいくつかのコマンドライン オプションを解析するために GLib を使用しています。問題は、ユーザーがそれらを省略した場合にプログラムがヘルプ画面で終了するように、これらのオプションのうち 2 つを必須にしたいことです。

私のコードは次のようになります。

コマンドラインでこれらのパラメーターのいずれかまたは両方を省略した場合でも、g_option_context_parse() は成功し、問題の値 (行または列) は依然として -1 です。ユーザーがコマンドラインで両方のオプションを渡さない場合、GLib に解析を失敗させるにはどうすればよいですか? 多分私は目が見えないだけかもしれませんが、これらのフィールドを必須にするように GOptionEntry データ構造に入れることができるフラグが見つかりませんでした。

もちろん、これらの変数のいずれかがまだ -1 であるかどうかを確認することはできますが、ユーザーがコマンドラインでこの値を渡した可能性があり、値が範囲外の場合は別のエラー メッセージを出力したいと考えています。

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

c# - C# オプション パラメータのデフォルト値の設定

オプションのパラメータのデフォルト値をリソース ファイル内の何かに設定しようとすると、次のコンパイル エラーが発生します。

'message' の既定のパラメーター値は、コンパイル時の定数でなければなりません。

これを可能にするためにリソース ファイルの動作を変更する方法はありますか?

この中にValidationMessages、リソースファイルがあります。

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

generics - コンストラクターでオプションのパラメーターを持つクラスがnew()ジェネリック制約を満たさないのはなぜですか?

次のコードはコンパイルに失敗し、「ウィジェットはパブリックパラメーターなしのコンストラクターを持つ非抽象型でなければなりません」というエラーが発生します。コンパイラには必要な情報がすべて揃っていると思います。これはバグですか?見落とし?または、これが有効でないシナリオはありますか?