我在我们的项目中注意到了这段代码
Dictionary<int, IList> someDict = new Dictionary<int, IList>();
使用接口获取价值的想法是什么?这是否意味着我可以放入每个实现/支持 IList 的列表?例如,我可以将 LList<int>
和List<string>
for 值放在字典中吗?
我在我们的项目中注意到了这段代码
Dictionary<int, IList> someDict = new Dictionary<int, IList>();
使用接口获取价值的想法是什么?这是否意味着我可以放入每个实现/支持 IList 的列表?例如,我可以将 LList<int>
和List<string>
for 值放在字典中吗?
您可以将任何实现IList
作为值
Dictionary<int, IList> someDict = new Dictionary<int, IList>();
someDict[1] = new List<string>() { "Hello", "World" };
someDict[2] = new List<int>() { 42 };
someDict[3] = new int[] { 1, 2, 3 };
someDict[4] = new ArrayList();
是的,你想从一个特殊的类中分离出来,你只是想确保字典中使用的类型提供了 IList 功能。只要您的类型提供此功能,您就可以使用它,包括List<T>
. 它就像一个确保类型的一组方法/属性的合同
是的,您可以使用从声明的类型继承的类型。在您的情况下List<int>
,是从 构建的泛型类型List<T>
,而后者又继承自IList
. 因此,是的,您可以List<int>
在字典中使用。