【发布时间】:2011-03-20 18:20:45
【问题描述】:
我正在尝试为数字类型编写一个扩展方法,以便在我正在构建的流畅测试框架中使用。基本上,我想这样做:
public static ShouldBeGreaterThan<T>(this T actual, T expected, string message)
where T : int || T: double || etc...
只是where T : struct 不行,因为它也会匹配string 和bool,可能还有我忘记的其他内容。我能做些什么来只匹配数字类型吗? (特别是实现 > 和 < 运算符的类型,所以我可以比较它们......如果这意味着我也在匹配日期,那并不重要 - 扩展仍然会按照我的预期进行。 )
【问题讨论】:
-
Jon Skeet 和 Mark Gravell 为此整理了一些有趣的课程:yoda.arachsys.com/csharp/genericoperators.html
-
@Dan 实际上是“Marc”,但我会放过你——很少有人能做对;p