В моем проекте VS2008 SP1, .NET 3.5 SP1 у меня есть разные классы, которые содержат разные свойства.
Я часто использую свойства авто C # 3.0.
Некоторые из этих свойств должны быть коллекциями. Поскольку я хочу сделать это проще, я использую ReadOnlyCollection<T>
для этих свойств.
Я не хочу использовать IEnumerable<T>
, так как мне нужен произвольный доступ к элементам.
Я использую Code Analysis (правила 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: \ Users ... \ Visual Studio 2008 \ Projects \ CA2227 \ MyClass.cs 7 CA2227