我有一个与这个帖子相似的问题,我有一个类。
我希望只有在
有没有什么巧妙的解决方案?我完全不知道...
public class MyClass
{
// other properties
public bool IsDefault { get; internal set; }
}
我有一个定义了集合类的代码:
public class MyCollection : ICollection<MyClass>
{
private List<MyClass> _itemList = new List<MyClass>();
public void SetAsDefault(MyClass item)
{
// Make sure no other items are default.
_itemList.ForEach(x => x.IsDefault = false);
// Set specified item as default.
_itemList.Find(x => x.Equals(item)).IsDefault = true;
}
}
我希望只有在
MyCollection
中的单个项目被标记为默认项,同时还能够直接检查MyClass
中是否存在特定实例作为默认项。将MyClass.IsDefault
的setter标记为internal
,开发人员无法在程序集外设置IsDefault
。然而,在我的情况下,我想要避免错误地设置IsDefault
属性的开发人员可以访问程序集内部,因此使用internal
是不够的。有没有什么巧妙的解决方案?我完全不知道...
public static MyClass DefaultInstance;
并设置它。这将使用当前的默认实例。 - Thorsten DittmarMyCollection
的私有成员保留呢? - decPL