Resharper认为类型转换是多余的,但是没有类型转换代码就不能工作

本文关键字:类型转换 代码 工作 就不能 多余 Resharper | 更新日期: 2023-09-27 18:18:49

通过foreach迭代JsonData获取IDictionary枚举数,而不是IList枚举数。

foreach (var jsonEntry in jsonData)

这会导致我的代码抛出一个错误。

InvalidOperationException: Instance of JsonData is not a dictionary
LitJson.JsonData.EnsureDictionary ()
LitJson.JsonData.System.Collections.Specialized.IOrderedDictionary.GetEnumerator ()
LitJson.JsonData.System.Collections.IDictionary.GetEnumerator ()

将对象强制转换为IList会导致Resharper发出警告"类型强制转换是多余的。"

foreach (var jsonEntry in jsonData as IList)

为什么Resharper认为强制转换是多余的?

Resharper认为类型转换是多余的,但是没有类型转换代码就不能工作

为什么Resharper认为强制转换是多余的?

如果你这样想:

IList是一个ICollection, dictionary也是一个ICollection,因为它们都实现了'ICollection', Resharper的警告应该变得清晰了。