Wes*_*ley 9 c# design-patterns object instantiation objectinstantiation
鉴于以下示例,客观上比另一个客观更好/更快/更安全吗?对象文字实例化是否应该是实用的最佳实践?
这在哪里不合适?
class Person
{
public string name;
public int age;
}
void MakePeople()
{
Person myPerson = new Person();
myPerson.name = "Steve";
myPerson.age = 21;
Person literalPerson = new Person { name = "John", age = 22 };
}
Run Code Online (Sandbox Code Playgroud)
Ode*_*ded 16
不,它不是更快或更慢.这是相同的.
编译器将对象初始值设定项转换为构造函数调用,然后设置这些属性.
Person literalPerson = new Person { name = "John", age = 22 };
Run Code Online (Sandbox Code Playgroud)
转向:
Person myPerson = new Person();
myPerson.name = "John";
myPerson.age = 22;
Run Code Online (Sandbox Code Playgroud)
您应该使用更具可读性的内容以及您与团队达成的协议.