gpt4 book ai didi

c# - 如何检查我是否可以对给定类型的值求和

转载 作者:行者123 更新时间:2023-11-30 17:23:34 26 4
gpt4 key购买 nike

在我们的应用程序中,我们有许多聚合器类型(从 SQL Server 复制的想法)即 MinAggregator MaxAggregator、CountAggregator 和 SumAggregator。

现在我应该检查聚合器是否支持所提供值的类型。对于伯爵来说,这并不重要。对于 Max 和 Min,我使用 IComparable 检查。但是 SUM 有什么用呢?我试过转换器,但它也支持字符串。

为什么没有 ISummable :)

还有 IsNumeric 之类的检查对我来说不是解决方案。比如TimeSpan也可以求和。

最佳答案

实际上,对于最小值/最大值,使用 Comparer<T>.Default 更容易, 这也支持 IComparable<T> , 处理“提升”运算符等。

如果您使用 MiscUtil,您可以免费获得大部分内容;我写了一些代码来提供对通用运算符的访问,包括 Sum 的通用扩展方法。 , Average等等。不幸的是,运算符不能出现在接口(interface)上,更糟糕的是,原语实际上MethodInfo 中没有运算符。感觉(这是直接在 IL 中提供的)- as discussed here .

关于c# - 如何检查我是否可以对给定类型的值求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2093230/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com