Ani*_*jee 6 .net c# generics type-constraints
我已经开发了一些对象的扩展方法,我不想在intellisense中使用/显示实现IEnumerable的对象.从概念上讲,我想要的东西如下
public static T SomeMethod<T>(this object value) where T != IEnumerable
{
}
Run Code Online (Sandbox Code Playgroud)
是否有可能在C#中强加这种约束?
编辑
对不起,我以错误的方式提出问题.我知道C#中允许的约束,我想知道的是,如果还有其他方法可以实现这一点吗?
Jon*_*eet 14
只是为了确认Øyvind的评论:C#中没有这样的限制.唯一类型的约束是:
where T : struct (不可为空的值类型约束)where T : class (参考类型约束)where T : SomeClassName (转换为特定的类约束)where T : ISomeInterfaceName (转换为特定的接口约束)where T : U (转换为另一种类型参数约束)where T : new() (无参数构造函数约束)请注意,我只分离出特定的类和接口约束,因为前者是主要约束,后者是次要约束.