除了“var”(请参阅我的另一篇文章)之外,我真正喜欢 C# 的一件事是我可以同时声明,然后使用大括号初始化类的成员,就像这样......
var reallyLongFooVarName = new ReallyLongFooClassName(){
Name = "I'm an instance of Foo",
ID = 23 };
甚至在一条线上,像这样......
var longFooVarName = new ReallyLongFooClassName(){ Name = "I'm an instance of Foo", ID = 23 };
这将创建一个ReallyLongFooClassName 的实例,然后设置其成员'Name' 和'ID'。
这编译为与您键入此内容相同的内容...
ReallyLongFooClassName reallyLongFooVarName = new ReallyLongFooClassName();
reallyLongFooVarName.Name = "I'm an instance of Foo";
reallyLongFooVarName.ID = 23;
那么Objective-C/C++有什么相当于C#的成员大括号初始化的东西吗?
注意:感谢我的另一篇文章,我已经知道 'auto' 是 Objective-C++ 中的 'var' 等价物,但 Objective-C 没有这样的等价物,这很遗憾。再次,请参阅我的其他帖子以获取更多信息。)
更新
我知道编写初始化程序。那是完全不同的节拍。我在上面在 C# 中演示的技术使用属性的设置器,或者直接设置成员变量而无需编写构造函数(它们相当于 Objective-C 的“init”成员。)必须编写 init 成员迫使你必须预先指定要设置的内容。成员大括号初始化允许您以任何您想要的顺序指定属性/成员变量的任意组合。同样,它只是一次编写多行代码的语法糖。它实际上并没有改变班级。