c# - 集合类型属性的 setter

标签 c# oop collections

Collection Type Properties 是否需要 setter

//Type 1    
class Company
{
    private IList<Customer> customers;

    public IList<Customer> Customers
    {
        get { return customers; }
        set { customers = value; }
    }
}

 //Type 2 
 class Company
 {
       private readonly IList<Customer> customers = new List<Customer>();

       public IList<Customer> Customers
       {
               get { return customers; }
       }
  }

什么时候使用类型 1 和类型 2? 如果我初始化一个 List 并使用只读属性 Customers 还不够吗?如 Company.Customers.Add(new Customer)

关于为集合类型属性提供 setter 的最佳实践是什么?

最佳答案

请阅读 FxCop 推荐 CAS2227“集合属性应该是只读的” http://msdn.microsoft.com/en-us/library/ms182327(VS.80).aspx

它包含很好的建议:)

关于c# - 集合类型属性的 setter ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/669066/

相关文章:

c# - 增量导出和导入 postgresql C#

c# - Collapsed 事件在 TreeViewItem 的父节点上触发

java - 显式实现未使用的接口(interface)的缺点

Javascript 原型(prototype)扩展基类无法从原型(prototype)类访问基类属性/方法

java - 加载设置 - 最佳实践

php - Laravel 从集合中获取一个字段的另一个字段值

c# - 将 IP 地址转换为有效的 URI

c# - 过滤异常处理程序中的代码在访问异常时抛出 NullReferenceException

java - 对于集合,我们什么时候更喜欢使用 Object 类型,什么时候使用原始类型

java - 对象集合中递增的哈希码