【问题标题】:generic interface type restricting another generic interface泛型接口类型限制另一个泛型接口
【发布时间】:2018-07-23 16:52:20
【问题描述】:

如何实现限制通用接口类型的通用接口?

interface A<T>

interface B<T> where T: class

我需要将接口 A 限制为具有任何类类型的接口 B

我认为它可能看起来像

interface A<T> where T : B<T>

interface A<B<T>> where T : class

但两者似乎都不起作用

有什么办法吗?

【问题讨论】:

  • 如何您的第一次尝试“不起作用”?我不确定您到底想要实现什么,但第一个版本错过了class 约束:interface A&lt;T&gt; where T : class, B&lt;T&gt; {}
  • 似乎不起作用?它以什么方式不起作用?您只是缺少A&lt;T&gt; 中的类约束吗?

标签: c# .net class generics interface


【解决方案1】:

您对此进行了过度设计。 只需这样做:

interface A<T> where T : class
{
    B<T> SomeProperty { get;}
    void SomeMethod(B<T> param);
}

【讨论】:

  • 美观又简单
猜你喜欢
  • 2019-04-06
  • 2020-12-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-05
  • 2016-02-12
  • 1970-01-01
相关资源
最近更新 更多