如何为多个泛型类型使用关键字`where`? [复制]

Posted

技术标签:

【中文标题】如何为多个泛型类型使用关键字`where`? [复制]【英文标题】:How to use keyword `where` for multiple generic types? [duplicate] 【发布时间】:2020-04-03 15:08:51 【问题描述】:

我有这个界面:

interface ILooperable<in TASK_TYPE, in CALLBACK_TYPE>

我想将第一个参数设置为实现foo,第二个参数设置为boo,如下所示:

interface ILooperable<in TASK_TYPE, in CALLBACK_TYPE> where TASK_TYPE: foo, CALLBACK_TYPE : boo

但它不起作用,

上面写着:

语法错误

我做错了什么?

【问题讨论】:

【参考方案1】:

您应该重复 where 关键字:

interface ILooperable<in TASK_TYPE, in CALLBACK_TYPE>
where TASK_TYPE: foo
where CALLBACK_TYPE : boo  

您可以在MSDN 上阅读有关其用法的更多信息。

【讨论】:

以上是关于如何为多个泛型类型使用关键字`where`? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何为具有泛型类型的箭头函数编写流类型

TypeScript 如何为泛型函数创建泛型类型别名?

如何为 useHitory() 覆盖非泛型类型,例如 @types/History?

深入理解C#泛型:new与where关键字全解析

泛型约束

如何为 Sequence[T] 提供泛型类型参数?