我知道我可以制作像
这样的方法private T MyFun<T>()
where T : IMyInterface
{...}
我可以反过来,即T没有实现IMyInterface吗?具体的用例是我不想允许nullables,但我一般都很好奇。
答案 0 :(得分:2)
如果你不想要可以为空的类型,你可以这样做。
private T MyFun<T>()
where T : struct
{...}
答案 1 :(得分:0)
不,在一般情况下,您无法指定“排除列表”。但是,为了防止允许Nullable类型,可以使用“where T:class”约束。因为Nullable是一个结构,所以会产生预期的效果。
编辑:哎呀,看起来我太仓促了 - 你是否在考虑如何防止任何可以为null或特别是Nullable的东西被允许?
答案 2 :(得分:0)
你总是可以在运行时抛出一个NotSupportedException()。诚然,不如编译器阻止它