代码之家  ›  专栏  ›  技术社区  ›  Xodarap

泛型不能实现某些东西

  •  4
  • Xodarap  · 技术社区  · 15 年前

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

    我可以反过来吗,即T不实现IMyInterface?具体的用例是,我不想允许null,但我只是好奇一般。

    3 回复  |  直到 15 年前
        1
  •  0
  •   Ben    15 年前

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

    编辑:哎呀,看来我太草率了——你问过如何防止任何可以为null,或者特别是可以为null的内容被允许?

        2
  •  2
  •   ChaosPandion    15 年前

    private T MyFun<T>() 
      where T : struct
    {...}
    
        3
  •  0
  •   cordialgerm    15 年前