这似乎是一个非常愚蠢和初级的问题,但我试图用谷歌搜索它,但找不到满意的答案,
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public Person(){}
public Person(string name, int age)
{
Name = name;
Age = age;
}
//Other properties, methods, events...
}
我的问题是,如果我有这样的类,创建对象的最佳方法是什么?
Person p=new Person("abc",15)
或
Person p=new Person();
p.Name="abc";
p.Age=15;
这两种方法有什么区别,创建对象的最佳方式是什么?
最佳答案
决定是否需要一个不可变对象。
如果您将 public
属性放入您的类中,那么您的代码中的每个实例的状态都可以随时更改。所以你的类(class)可能是这样的:
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public Person(){}
public Person(string name, int age)
{
Name = name;
Age = age;
}
//Other properties, methods, events...
}
在这种情况下,Person(string name, int age)
构造函数就没那么有用了。
第二个选项是实现一个不可变 类型。例如:
public class Person
{
public string Name { get; private set; }
public int Age { get; private set; }
public Person(string name, int age)
{
Name = name;
Age = age;
}
//Other properties, methods, events...
}
现在您有了一个在创建时为实例设置状态的构造函数,一次。请注意,现在属性的 setter 是 private
,因此您无法在对象实例化后更改状态。
最佳实践是尽可能每次都将类定义为不可变的。要了解不可变类的优势,我建议您阅读此 article .
关于c# - 创建对象的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14747095/