C#generic确实*不*实现某些东西

我知道我可以做一个类似的方法

private T MyFun<T>() 
  where T : IMyInterface
{...}

我可以反过来,即T没有实现IMyInterface吗?具体的用例是我不想允许nullables,但我总体上很好奇.

最佳答案 不,在一般情况下,您不能指定“排除列表”.但是,为了防止允许Nullable类型,可以使用“where T:class”约束.因为Nullable是一个结构,它将具有所需的效果.

编辑:哎呀,看起来我太仓促了 – 你问如何防止任何可以为null或特别是Nullable的东西被允许?

点赞