前端之家收集整理的这篇文章主要介绍了
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()(无参数构造函数约束)
请注意,我只分离出特定的类和接口约束,因为前者是主要约束,后者是次要约束.
原文链接:https://www.f2er.com/csharp/97792.html