加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何指定不实现特定接口的类型参数?

发布时间:2020-12-15 18:12:25 所属栏目:百科 来源:网络整理
导读:我已经开发了一些对象的扩展方法,我不想在intellisense中使用/显示实现IEnumerable的对象.从概念上讲,我想要的东西如下 public static T SomeMethodT(this object value) where T != IEnumerable { } 是否有可能在C#中强加这种约束? 编辑 对不起,我以错误的
我已经开发了一些对象的扩展方法,我不想在intellisense中使用/显示实现IEnumerable的对象.从概念上讲,我想要的东西如下
public static T SomeMethod<T>(this object value) where T != IEnumerable
        {

        }

是否有可能在C#中强加这种约束?

编辑

对不起,我以错误的方式提出问题.我知道C#中允许的约束,我想知道的是,如果还有其他方法可以实现这一点吗?

解决方法

只是为了确认?yvind的评论:C#中没有这样的限制.唯一类型的约束是:

>其中T:struct(不可为空的值类型约束)
>其中T:class(引用类型约束)
>其中T:SomeClassName(转换为特定的类约束)
>其中T:ISomeInterfaceName(转换为特定的接口约束)
>其中T:U(转换为另一种类型参数约束)
>其中T:new()(无参数构造函数约束)

请注意,我只分离出特定的类和接口约束,因为前者是主要约束,后者是次要约束.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读