これらのどれも編集可能にしたくありません。コレクションの場合、ReadOnlyCollectionを使用することは非常に明確に思えます(コレクションから常に新しいReadOnlyCollectionを作成するのに良い方法かどうかはわかりませんが(コストがかかりますか?))。
public static class Lookups
{
private static Collection<MyBusinessObject> businessObjects;
// [...]
public static ReadOnlyCollection<MyBusinessObjects> BusinessObjects
{
get
{
return new ReadOnlyCollection<MyBusinessObject>(businessObjects);
}
}
// [...]
}
しかし、もっと重要なのは、コレクション内のアイテムをどうするかということです。このテストに合格したいのですが?
[TestMethod]
public void Items_Should_Not_Be_Editable()
{
var businessObject = Lookups.BusinessObjects.First();
businessObject.Id = 1337;
Assert.AreNotEqual(1337, Lookups.BusinessObjects.First().Id);
}