問題タブ [params-keyword]

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

c# - String.Format() - パラメータを再渡しするが、さらにパラメータを追加する

私はそのようなことをしたいと思います:

そのため、params の配列を再度渡したいのですString.Format()が、新しいパラメーターを追加します。

オブジェクトの新しい配列を「再構築」することができ、これは良くないように思われることを知って、それを行う最善の方法は何でしょうか。

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

c# - params[] をラムダ式のパラメータにすることはできますか?

私は最近、ラムダ式の調査を開始しましたが、疑問が頭に浮かびました。不確定な数のパラメーターを必要とする関数があるとします。params キーワードを使用して、可変数のパラメーターをモデル化します。

私の質問: ラムダ式で同様のことを行うことはできますか? 例えば:

もしそうなら、2 つのサブ質問が提示されます - そのような式を書くための「良い」方法はありますか? また、ある時点でこのような式を書きたいと思いますか?

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

c# - Unityへの登録時に可変長のコンストラクタ引数を指定することはできますか?

、、IFooおよび の 3 つの具象クラスがあります。FooA : IFooFooB : IFooMultiFoo : IFoo

のコンストラクタはMultiFoo次のようになります。

MultiFooUnityに登録するときに、特定の解像度のオーバーライドを指定できますか? 私はこのようなことができるようにしたいと思います:

これにより、解決された FooA と解決された FooB が解決時にコンストラクターに渡されます

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

c# - 「params」キーワードを使用したメソッドの複数のオーバーロード

私は見ていて、Path.Combine4つのオーバーロードがあることに気付きました:

  1. stringstring
  2. stringstringstring
  3. stringstringstringstring
  4. params string[]

最初の 3 つのオーバーロードはどのように役立ちますか?
私の見方では、4 番目のオーバーロードは他のオーバーロードをかなり無意味にします。paramsソースを調べたところ、4 番目のオーバーロードの実装が少し異なることがわかりましたが、この場合でも、配列の長さに基づいて使用する実装を決定するオーバーロードが1 つだけあると予想されます。

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

c# - 配列をメソッド引数に解凍します

ご存知のように、C#はparamsキーワードを通じて可変個引数メソッドをサポートしています。

次に、任意の数の引数を使用して呼び出すことができます。

しかし、 s1のAdd配列を使用して呼び出したいとしましょ。これは可能であり、どのように(できれば反射なしで)可能ですか?次のことを試しましたが、構文エラーが発生しました(構文は純粋に推測でした)。int


1実際のユースケースは異なりますが、この例はそれほど複雑ではないと思いました。

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

c# - C# でパラメーターを使用して辞書を参照する

不特定の量の辞書パラメーターを受け取り、それらすべてのコンテンツをスキャンするメソッドを作成しましたが、同じことはカバーされていません。修正内容に応じて、最初または2番目のforeachでエラーが発生します。Consegundo'm はこの問題を修正しません。どうすればこの作品をパラケにすることができますか。

params ディクショナリを取得し、それぞれの内容を確認したいと思います。

以下に従うコード:

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

c# - 「params」キーワードが使用されている署名の変更時にコンパイル エラーを確認する方法

私はこのような方法を持っています:

新しい要件により、次のような変更が行われます。

Foo問題は、メソッド シグネチャを変更してもコンパイル エラーが発生しないことです。これはもちろん正しいのですが、引数が指定されていないメソッドを呼び出すたびにコンパイル エラーが発生するようにしたいと考えbazています。つまりFoo、変更前の呼び出しが次の場合:

それは今これである必要があります:

このように変更されない場合は、p1に割り当てられbaz、params 配列argsの長さは 1 になり、OutOfBounds例外がスローされます。

署名を変更し、すべての呼び出しコードがそれに応じて更新されるようにする最善の方法は何ですか? (実際のシナリオはFoo、ビルド サーバー上で自動的にビルドされた多くのプロジェクトによって共有されるアセンブリに存在する場所です。したがって、コンパイル エラーは、変更に対応するために変更する必要があるすべてのコードを検出する簡単な方法です。)

編集: Daniel Mann と他の人が指摘したように、上記の例は、params をまったく使用しないことを示唆しています。したがって、実世界の例では、Foo のロジックに関する限り、args に 2 つの要素が必要であるとは限らないことを説明する必要があります。args には任意の数の要素を含めることができます。これが Foo だとしましょう: