考虑以下通用:
class Foo<T, U> {}
是否可以防止T和U成为同一类型?这个问题出于好奇。
答案 0 :(得分:4)
不,不是。这里列出的唯一选项是Constraints on Type Parameters
答案 1 :(得分:2)
答案 2 :(得分:2)
正如其他人所指出的,您不能使用类型约束,但您仍然可以使用静态构造函数添加运行时检查。见http://en.csharp-online.net/ECMA-334:_25.1.5_Static_constructors_in_generic_classes
答案 3 :(得分:1)
不,没有这样的事情。但您可能希望使用模板元编程来查看其他语言,例如D - 它们是更强大的,泛型的编译时变体。