在我的 VS2008 SP1、.NET 3.5 SP1 项目中,我有包含不同属性的不同类。我经常使用 C#3.0 自动属性。
其中一些属性需要是集合。因为我想让它变得简单,所以我使用ReadOnlyCollection<T>
这些属性。
我不想使用IEnumerable<T>
,因为我想随机访问元素。
我使用代码分析(FxCop 规则)并收到 CA2227 警告。
我不明白为什么ReadOnlyCollection<T>
应该有一个 set 方法,而它不能被改变...... set 方法只能做属性可以做的事情。
例子:
using System.Collections.ObjectModel;
namespace CA2227
{
public class MyClass
{
public ReadOnlyCollection<int> SomeNumbers { get; set; }
}
}
CA2227:Microsoft.Usage:通过删除属性设置器将“MyClass.SomeNumbers”更改为只读。C:\用户...\Visual Studio 2008\Projects\CA2227\MyClass.cs 7 CA2227