【发布时间】:2014-08-15 14:58:01
【问题描述】:
我有几个基本问题。我在代码中看到了很多类似下面的内容:
public class User
{
private IList<Person> _person;
public User()
{
_person = new IList<Person>();
}
public IList<Person> personList
{
get { return _person; }
(protected) set { _person = value; }
}
}
在 ctor 中实例化变量有什么好处?为什么在声明的时候不实例化呢?无论如何,您在创建实例时都在实例化变量,那么为什么不在声明期间设置它呢?
为什么将变量设置为私有,然后允许公共属性访问它? (我已将 protected 放在括号中,我可以看到这样做的好处 - 只允许子类或自身设置该属性),但说您没有 protected 或 private 设置。如果你只是将变量设置为公共不是更好吗?
【问题讨论】:
-
第一个问题,如果你想在构造函数中传递参数并使用它们来实例化你的变量呢?
-
当你的父母(公共财产)可以告诉你去打扫时,拥有自己的私人卧室(变量)有什么意义?
标签: c# .net properties constructor encapsulation