C# 如何在C中实现固定的sze通用IList#
我正在构建一个特殊的集合,需要实现通用的C# 如何在C中实现固定的sze通用IList#,c#,ilist,C#,Ilist,我正在构建一个特殊的集合,需要实现通用的IList接口。问题是,我希望集合像一个非通用的固定大小IList。我不希望用户能够在集合中插入或删除对象 由于某些原因,IList接口未实现IsFixedSize属性。那么,使用genericIList接口实现这一点的最佳方法是什么?我可以让Insert、Remove和RemoveAt方法抛出NotImplementedException,我可以接受,但是有更好、更被接受的方法吗 Tony您可以使用一个在您的IList上的包装器,它只允许读取内容,不允许
IList
接口。问题是,我希望集合像一个非通用的固定大小IList
。我不希望用户能够在集合中插入或删除对象
由于某些原因,IList
接口未实现IsFixedSize
属性。那么,使用genericIList
接口实现这一点的最佳方法是什么?我可以让Insert
、Remove
和RemoveAt
方法抛出NotImplementedException
,我可以接受,但是有更好、更被接受的方法吗
Tony您可以使用一个在您的IList
上的包装器,它只允许读取内容,不允许添加或删除:
var myList = new List<string>();
var readonlyList = new ReadOnlyCollection<string>(myList);
var myList=new List();
var readonlyList=新的ReadOnlyCollection(myList);
您可以使用一个在您的IList
上的包装器,它只允许读取内容,不允许添加或删除:
var myList = new List<string>();
var readonlyList = new ReadOnlyCollection<string>(myList);
var myList=new List();
var readonlyList=新的ReadOnlyCollection(myList);
如果您不想更改“列表”的大小,那么只需使用数组即可
如果不希望集合可编辑,请使用
ReadOnlyCollection
如果不希望“列表”的大小可更改,请使用数组
如果不希望集合可编辑,请使用
ReadOnlyCollection
一种典型的方法是显式实现IList
的违规成员,如Add
、Insert
和Remove
,因此,除非人们真的将您的东西强制转换到IList
,否则他们是不可用的。数组就是这样做的。一种典型的方法是显式地实现IList
中有问题的成员,比如Add
、Insert
、和Remove
,这样人们就无法使用它们,除非他们真的将您的东西转换到IList
。数组就是这样做的。请用适当的语言(C#?)标记。请用适当的语言(C#?)标记。这是我要采取的方法。我将实现我不想显式公开的成员,并将其作为私有成员。这样,当用户将鼠标悬停在我的类的实例上时,它们就不会出现在IntelliSense中。这就是我将要采用的方法。我将实现我不想显式公开的成员,并将其作为私有成员。这样,当用户将鼠标悬停在我的类的实例上时,它们就不会出现在IntelliSense中。