c# - 匹配数字类型的通用约束

标签 c# generics numeric

<分区>

我正在尝试编写一个数字类型的扩展方法,以便在我正在构建的流畅测试框架中使用。基本上,我想这样做:

public static ShouldBeGreaterThan<T>(this T actual, T expected, string message)
    where T : int || T: double || etc...

只是where T : struct不行,因为那也匹配 stringbool ,可能还有其他我忘记的东西。我可以做些什么来只匹配数字类型吗? (特别是实现 >< 运算符的类型,所以我可以比较它们......如果这意味着我也在匹配日期,那并不重要 - 扩展仍然会按照我的预期进行。 )

最佳答案

在这种情况下,您希望将泛型限制为 IComparable接口(interface),它使您可以访问 CompareTo 方法,因为此接口(interface)允许您回答问题 ShouldBeGreaterThan

数字类型将实现该接口(interface),而且它也适用于字符串这一事实应该不会太困扰您。

关于c# - 匹配数字类型的通用约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62071027/

相关文章:

c# - 将 n 个数据表组合成一个数据表

c# - 如何获取构建过程模板中的参数值

javascript - 具有 gettersetter 的 Angular 1.4.x 数字字段不适用于十进制数

时间:2019-01-08 标签:c#system.net.webexception : 'Error on the remote server: (400) Bad Request.' - HttpWebResponse

c# - 您可以数据绑定(bind) TreeView 控件吗?

c# - 父/子泛型关系

c# - 通用扩展方法测试

c# - 我可以限制通用堆栈的深度吗?

Perl 尾数与其他 double 不同

java - 使用递增和递减按钮在 java Swing 中创建一个数字文本框