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

前端之家收集整理的这篇文章主要介绍了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()(无参数构造函数约束)

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

猜你在找的C#相关文章