如何使用using别名指令为泛型接口IDictionary<string,object>创建别名?
解决C#中泛型IDictionary别名创建报错的问题
出现CS0308错误的核心原因是:C#里存在两个IDictionary类型——非泛型的System.Collections.IDictionary(不支持添加类型参数)和泛型的System.Collections.Generic.IDictionary<TKey, TValue>,编译器默认匹配了非泛型版本,导致你添加<string, object>类型参数时触发报错。
下面是两种可行的解决方法:
方法1:用完整命名空间限定泛型IDictionary
直接在别名声明里写出泛型IDictionary的完整命名空间,让编译器明确识别目标类型:
using ParsedObjects = System.Collections.Generic.IDictionary<string, object>; using ParsedObjectsHandler = Func<Interaction, object, System.Collections.Generic.IDictionary<string, object>, Task>;
方法2:先导入泛型IDictionary所在的命名空间
在文件顶部先导入System.Collections.Generic命名空间,之后就可以直接用IDictionary指代泛型版本:
// 先添加这个命名空间导入 using System.Collections.Generic; // 再声明别名 using ParsedObjects = IDictionary<string, object>; using ParsedObjectsHandler = Func<Interaction, object, IDictionary<string, object>, Task>;
内容的提问来源于stack exchange,提问作者Ernest3.14
相关产品推荐
相关产品推荐

