0

重複の可能性:
C# 3.0 オブジェクト初期化子のコンストラクターの括弧が省略可能なのはなぜですか?

これが私のカスタム オブジェクトであると仮定します。

public class MyObject {
    public string Name { get; set; }
    public int number { get; set; }

    public MyObject() {

    }
}

このオブジェクトは、ジェネリックを定義することも、カスタム コンストラクターやさらに多くの要素を使用して定義することもできるため、インスタンスを作成し、2 つの構文でプロパティを設定できます。

MyObject newObj1 = new MyObject { Name = "MyName", number = 10 };
MyObject newObj2 = new MyObject() { Name = "MyName", number = 10 };

括弧を使用するインスタンスと括弧を使用しないインスタンスとの間に違いはありますか?

4

2 に答える 2

2

括弧を使用するインスタンスと括弧を使用しないインスタンスとの間に違いはありますか?

いいえ。

ReSharper を使用すると、2 番目の構造に冗長な括弧としてフラグが立てられ、それらを削除するよう提案されます。ただし、これはあくまでもスタイルの問題です。

于 2012-06-17T06:12:20.020 に答える
1

括弧を使用するインスタンスと括弧を使用しないインスタンスとの間に違いはありますか?

はい、

1 つ目はデフォルト コンストラクターへの暗黙的な呼び出しで、2 つ目は明示的な呼び出しです。

機能的には同じですが、コンパイラはそれらを異なって認識します。

于 2012-06-17T06:19:28.993 に答える