問題タブ [object-initializers]

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

c# - コレクション型の初期容量 (Dictionary、List など)

.Net の特定のコレクション タイプには、オプションの「初期容量」コンストラクタ パラメータがあります。例えば:

MSDN で、これらのオブジェクトのデフォルトの初期容量を見つけることができないようです。

辞書に 12 項目しか格納しないことがわかっている場合、初期容量を 20 などに設定するのは理にかなっていませんか?

私の推論は、容量が StringBuilder の場合と同じように増加し、容量がヒットするたびに 2 倍になり、それぞれの再割り当てにコストがかかると仮定すると、データを保持することがわかっているサイズに事前にサイズを設定しておかない理由です。念のため部屋?初期容量が 100 で、必要なメモリが 10 個程度しかないことがわかっている場合、残りのメモリは無駄に割り当てられているように見えます。

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

c# - C#:2つのコンストラクターを持つオブジェクト:どのプロパティが一緒に設定されるかを制限する方法は?

(int数量、10進数の価格)または「4 /$3.99」を含む文字列のいずれかを受け入れるPriceオブジェクトがあるとします。一緒に設定できるプロパティを制限する方法はありますか?以下の私の論理で私を修正してください。

テスト:AとBは互いに等しいですが、Cの例は許可されるべきではありません。したがって、Cの例のように、3つのパラメータすべてが呼び出されないように強制するにはどうすればよいですか?

クラス:

コンストラクター:

方法:

アクセサー:

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

c# - CodeDom とコレクション初期化子

C# CodeDom を使用して辞書初期化子を生成する方法はありますか? それらはまったくサポートされていますか?

私はを頂きたい:

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

c# - c#オブジェクト初期化子の複雑さ。ベストプラクティス

オブジェクト初期化子がC#に登場したとき、私は興奮しすぎました。

短く書き直すことができます:

オブジェクト初期化コードはより明白ですが、プロパティ数が数十になり、割り当ての一部がnull許容値を処理する場合、「null参照エラー」がどこにあるかをデバッグするのは困難です。Studioは、オブジェクト初期化子全体をエラーポイントとして表示します。

最近は、エラーのないプロパティにのみオブジェクト初期化子を使用して簡単に割り当てています。

複雑な代入にオブジェクト初期化子をどのように使用しますか、それとも数十の代入を使用するのは悪い習慣ですか?

前もって感謝します!

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

c# - オブジェクト初期化子とコンストラクター

オブジェクト初期化子を使用してクラスのプロパティを設定し、クラスのコンストラクター内でそれらにアクセスしようとしています。問題は、コンストラクターが実行されるまでプロパティが設定されていないように見えることです。私は何か間違ったことをしていますか?

ベーシッククラス..

クライアントクラス

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

c# - Linq IEnumerable Select の質問 - select 内でこれをすべて実行できますか?

早速質問させていただきました。select ステートメント内でこのすべてのロジックを実行できますか?

選択してからリストをループして、選択した項目を変更するのは間違っていると感じます。selectステートメント内でこれをすべて行うことはできますか?

ヒントをありがとう。

乾杯、
サンディエゴで~ck

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

c# - C# オブジェクト初期化子 - 新しいインスタンスへの参照

オブジェクト初期化子を使用して作成中のインスタンスへの参照を取得できますか

「this」は、作成中の新しい TestClass インスタンスを指す必要があります。しかし、それは明らかに、このコードが存在するクラスのインスタンスを参照しています。

これがこれを行う良い方法かどうかは尋ねていません。私はこれを次のようにできることを知っています:

オブジェクト初期化子で新しいインスタンスを参照すると、作業が楽になるという複雑なシナリオがあります。

これは何らかの方法で可能ですか?

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

c# - c#コンストラクターと自動プロパティおよびオブジェクト初期化子

私はautoプロパティを頻繁に使用しましたが、コンストラクターで初期化された読み取り専用のバッキングフィールドを使用してクラスを設定することからますます離れています。私はすべてのセッターを削除し、プロパティにセッターが明らかに必要な場合にのみバックを追加します。

これにより、クラスがより堅牢でエレガントなOOになり、以前にこれを行わなかったことに自分自身を蹴っています。

コンストラクターは一般的にc#コード例で非常に十分に活用されておらず、自動プロパティとオブジェクト初期化子がこれの大きな部分であると思うので、私の質問は、なぜc#チームがこのような機能をプッシュし、ベストプッシュ機能の提供に重点を置いていないのかということですもっと練習します。一般的に、悪いコードを書くのは簡単すぎると思いますし、コーダーが良いコードを書くのを助けるためにもっと多くのことができると信じています

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

c# - C#からVB.netリストへの変換エラーがあります

一部のC#コードをVBに変換しようとしていますが、エラーが発生します。正しいVB構文は何でしょうか?

C#

VB

そして、私もこれを変換しますか?Dim list As New List(Of Country)()From {New Country()With {Key .Name = "Select Country"、Key .Code = "0"}}

ありがとう

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

iqueryable - IQueryable LINQtoObject が LINQtoSQL として扱われ、サポートされている SQL への変換がスローされないのはなぜですか

POCO でラップしている LINQ dbml クラスがあります。DBML クラスと init を取るオーバーロードされたコンストラクターを作成しました。渡された dbml オブジェクトに基づくラッパー オブジェクトのプロパティ。

例えば

次に、IQueryableを返すこのようなことをすると

{

その Iquearble でさらにクエリを実行しようとすると、「System.NotSupportedException: The member 'MyPerson.ID' has no supported translation to SQL..」 が表示されます。

ただし、これを行うと{

エラーはまったく発生せず、すべてが完璧に機能します。基本的に、クラスでLINQオブジェクトからPOCO自体への変換を処理したいと考えています。

基本的に、オブジェクト初期化子を使用する必要があります。そうしないと、そのフィールドで一致することができません。