首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用别名指令对泛型接口进行混叠

使用别名指令对泛型接口进行混叠
EN

Stack Overflow用户
提问于 2022-12-02 06:31:13
回答 1查看 31关注 0票数 0

我知道不能将泛型类型化名(例如,using Foo = Dictionary;无效),但是右边的泛型类型必须关闭(例如,using Foo = Dictionary<int, string>;将工作)。

然而,别名IDictionary<string, object>似乎是无效的--相反,别名必须仅用于接口IDictionary。我得到的错误是"CS0308:非泛型类型'IDictionary‘不能与类型参数一起使用。“有办法把这整件事化作化名吗?(还是一个更好的方法来实现我想要的?)

在我的API中,我做的一件常见的事情是函数接受IDictionary<string, object>,我想做一些类似于using ParsedObjects = IDictionary<string, object>;的事情。事实上,我想宣布:

using ParsedObjectsHandler = Func<Interaction, object, IDictionary<string, object>, Task>;

(但我愿意接受前者。)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-12-02 06:46:43

编辑:虽然下面的答案解决了这个问题(因为我在其他地方找不到信息,所以我把它抛在脑后),但我还是同意了V.Lion在评论中的建议,即定义我自己的委托类型。

问题是我试图使用System.Collections.IDictionary而不是System.Collections.Generic.IDictionary<TKey, TValue>。使用后一种方法效果很好,即:

代码语言:javascript
运行
复制
using ParsedObjects = System.Collections.Generic.IDictionary<string, object>;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74651720

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档