【发布时间】:2012-02-02 09:26:15
【问题描述】:
根据标题,是否可以在 c# 4 中声明类型否定约束?
【问题讨论】:
-
即使有,你能描述一个用例吗?
-
看到你有这样的要求很奇怪。您只能针对您知道属于一类家族的类型 T 进行编码。否则你怎么能用泛型编码?在这种情况下您不需要泛型,或者您需要修改您的用例。
-
感兴趣的用例是允许以下重载共存
void doIt<T>(T what){}void doIt<T>(IEnumerable<T> whats){}- 目前存在歧义,因为第一种方法中的T可能是 @987654324 @(所以我想指定T不应该是IEnumerable)... -
我提请您注意这样一个事实,即具有采用 T 和 T 序列的方法的类型通常对这两种方法具有不同的名称。例如,在 List
中的 Add 和 AddRange。这是有原因的。遵循这种模式。 -
为什么是近距离投票?这个问题的答案可能是“否”,但这并不意味着这个问题没有价值。
标签: c# .net generics ienumerable