当你有一个复杂的属性时,你应该实例化它还是让用户实例化它?
例如(C#)
一个)
class Xyz{
List<String> Names {get; set;}
}
当我尝试使用时,我必须设置它。
...
Xyz xyz = new Xyz();
xyz.Name = new List<String>();
xyz.Name.Add("foo");
...
好像我在哪里修改代码
二)
class Xyz{
public Xyz(){
Names = new List<String>();
}
List<String> Names {get; }
}
在这种情况下,我可以将 List 设为只读。
可能会出现另一种情况,我想你会故意不想设置它。例如在
C)
class Xyz{
String Name {get; set;}
}
我认为初始化是不好的做法。
这种情况有一些经验法则吗?