|
1
4
这一决定引起了极大的痛苦,这在评论中很明显。 feedback article . |
|
|
2
6
From MSDN 以下内容:
ICollection<t>接口没有索引器,因此固定大小的ICollection<t>自动为只读-无法修改现有项。 可能是ICollection<t>.IsFixedSize的属性名比ICollection<t>.IsReadOnly更好,但两者都意味着相同的内容-无法添加或删除元素,即与ilist.IsFixedSize相同。 数组是固定大小的列表,但不是只读的,因为可以修改元素。 作为ICollection<t>,它是只读的,因为ICollection<t>无法修改元素。 这看起来可能令人困惑,但它是一致的和合乎逻辑的。 稍微不一致的是,通用IList<t>接口具有继承自ICollection<t>的IsReadOnly属性,其语义因此不同于非通用IList.IsReadOnly。我认为设计者知道这种不一致性,但是由于向后兼容性的原因,无法返回并更改非通用IList的语义。 总之,IList可以是:
|
|
|
3
0
这种行为的原因归结为
第一个是类型数组的一个普通属性。此属性满足IList接口的IsReadOnly属性。无论出于何种原因,在clr的1.0中,他们认为该属性应返回true。
第二个是类型的显式属性实现
真正的问题是为什么版本之间会发生变化?我不知道,但我的猜测是,作者认为更适合观察
|
|
|
4
0
从文档中 Array Class :
因此,由于泛型集合不支持添加、插入或删除,
不是他们想看到的。当他们在v2中添加泛型接口时,只有在数组被强制转换时才能调用这些接口,因此对于那些更合理的接口,返回true。 |
|
|
Roy · SQL C#:结果未返回任何内容。读取() 8 年前 |
|
|
Pablo · 如何在Regex.replace中仅替换捕获组? 10 年前 |
|
|
rudimenter · 为什么以下代码编译和执行成功? 12 年前 |
|
|
Rachel · 是否有任何原因在该代码块的List<T>中找不到现有项? 12 年前 |
|
|
oshirowanen · 动态超级链接 12 年前 |
|
|
sab669 · SharpSVN不迭代所有子目录和文件 12 年前 |
|
|
ForeverWintr · Excel中的奇怪行为。工作表。单元格[行,列] 13 年前 |