提问人:Ernest3.14 提问时间:12/2/2022 更新时间:12/3/2022 访问量:100
使用 using alias 指令对泛型接口进行别名化
Aliasing a generic interface with a using alias directive
问:
我知道不可能为泛型类型设置别名(例如 无效),但必须关闭右侧的泛型类型(例如 将起作用)。using Foo = Dictionary;
using Foo = Dictionary<int, string>;
但是,别名 --相反,别名必须仅用于接口。我得到的错误是“CS0308:非泛型类型'IDictionary'不能与类型参数一起使用。有没有办法给整个事情别名?(或者实现我想要的更好方法?IDictionary<string, object>
IDictionary
我在 API 中经常做的一件事是让函数接受 ,我想做一些类似于 的事情。事实上,我希望能够声明:IDictionary<string, object>
using ParsedObjects = IDictionary<string, object>;
using ParsedObjectsHandler = Func<Interaction, object, IDictionary<string, object>, Task>;
(但我愿意只满足于前者。
答:
0赞
Ernest3.14
12/2/2022
#1
编辑:尽管下面的答案解决了这个问题(我把它留了下来,因为我在其他任何地方都找不到信息),但我确实在评论中接受了 V.Lion 的建议来定义我自己的委托类型。
问题是我试图使用而不是 .使用后者效果很好,即:System.Collections.IDictionary
System.Collections.Generic.IDictionary<TKey, TValue>
using ParsedObjects = System.Collections.Generic.IDictionary<string, object>;
评论
ParsedObjectsHandler
Func<T1, ...>