'var' (こちらの他の投稿を参照) に加えて、私が C# で本当に気に入っていることの 1 つは、次のように中かっこを使用してクラスのメンバーを宣言し、初期化できることです...
var reallyLongFooVarName = new ReallyLongFooClassName(){
Name = "I'm an instance of Foo",
ID = 23 };
または、このように1行でも...
var longFooVarName = new ReallyLongFooClassName(){ Name = "I'm an instance of Foo", ID = 23 };
これにより、ReallyLongFooClassName のインスタンスが作成され、そのメンバーの「名前」と「ID」が設定されます。
これは、これを入力した場合と同じものにコンパイルされます...
ReallyLongFooClassName reallyLongFooVarName = new ReallyLongFooClassName();
reallyLongFooVarName.Name = "I'm an instance of Foo";
reallyLongFooVarName.ID = 23;
では、Objective-C/C++ には、C# の member-brace-initialization に相当するものがありますか?
注: 私の他の投稿のおかげで、'auto' が Objective-C++ の 'var' に相当することは既にわかっていますが、Objective-C にはそのような同等のものはありません。これは残念です。繰り返しますが、詳細については、こちらの他の投稿を参照してください。)
アップデート
初期化子を書くことを知っています。それはまったく別のビートです。上記でデモした手法 C# では、プロパティのセッターを使用するか、コンストラクターを記述する必要なくメンバー変数を直接設定します (Objective-C の「init」メンバーと同等のものです)。init メンバーを記述する必要があるため、設定したいものを事前に指定する必要があります。メンバーブレースの初期化により、プロパティ/メンバー変数の任意の組み合わせを任意の順序で指定できます。繰り返しますが、一度に複数行のコードを書くための単なる構文糖衣です。実際にクラスを変更するわけではありません。