为了账号安全,请及时绑定邮箱和手机立即绑定

C#中的数组如何部分实现IList <T>?

C#中的数组如何部分实现IList <T>?

喵喵时光机 2019-08-31 11:05:10
您可能知道,C#中的数组实现IList<T>了其他接口。但不知何故,他们这样做没有公开实现Count属性IList<T>!数组只有一个Length属性。这是一个明显的例子,C#/ .NET打破了自己关于接口实现的规则,还是我错过了什么?
查看完整描述

3 回答

?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

IList<T>.Count是明确实现的:


int[] intArray = new int[10];

IList<int> intArrayAsList = (IList<int>)intArray;

Debug.Assert(intArrayAsList.Count == 10);

这样做是为了当你有一个简单的数组变量时,你没有这两个Count并且Length直接可用。


通常,当您希望确保可以以特定方式使用类型时,使用显式接口实现,而不强制该类型的所有使用者以这种方式考虑它。


编辑:糟糕,糟糕的回忆那里。ICollection.Count明确实施。该通用IList<T>名称由Hans descibes处理。


查看完整回答
反对 回复 2019-08-31
  • 3 回答
  • 0 关注
  • 725 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信