我想写一个人类。 我不确定何时应该在物业上使用公共集合。
在以下示例中,我应该在public set
属性上使用Name
吗?
class Person
{
public string Name { get; private set; }
public DateTime DateOfBirth { get; private set; }
public Person[] Parents
{
get { return (Person[])Parents.Clone(); }
private set { Parents = value; }
}
public Person(string Name, DateTime DateOfBirth, Person[] parents=null)
{
this.Name = Name;
this.DateOfBirth = DateOfBirth;
Parents = parents;
}
}
答案 0 :(得分:0)
如果您希望能够从依赖于类的代码更改属性 - 是的。
class program
{
public void main()
{
Person p = new Person("New Born", DateTime.Now());
:
:
p.Name="John";
}
}
但是,如果名称永远不会从外部更改,只能从类代码中更改 - 否。
作为一般准则:
如果属性设置器是公共的,
- 您通常不需要添加构造函数参数来强制设置它。
如果您因某种原因希望强行设置,
- 它可能不需要公开。
但这仅仅是一般指导方针 - 而非强大的"规则。