![]() |
1
22
如果只想创建比较函数,则可以使用
default comparer
针对类型
如果
如果你想/需要做的不仅仅是比较项目,那么你可以看看 generic operators implementation in MiscUtil 以及 related article . |
![]() |
2
22
你可能想
constrain
要实现的泛型类型
然后使用
|
![]() |
3
4
我不同意。 @lukeh的实施 不是通用的 . 我将解释为什么它不是通用的:
然后,作为
因为 通用程序设计 手段: 一个单一的算法(通用)可以覆盖许多实现(对于许多类型),从而保持手写版本的效率。 举个例子。整数的手写版本为:
它非常简单,只涉及一个比较(或者更多,取决于Int32.CompareTo()的实现方式)。 如果我们使用@lukeh的实现,我们将为一些非常简单的东西添加反射。 简而言之:
另一方面。 当x和y相等时,你认为max应该返回什么? 我开始分析真正的通用实现…… 理想的实现方式是……
这在C中是不可能的,下一次尝试可能是…
但是,这两者都不可能,因为重载解析不考虑泛型约束…
那么,我就不提了
|
![]() |
4
3
这有点晚了,但为什么不使用动态类型和委托作为IComparable的替代方法呢?这样,在大多数情况下都可以获得编译类型的安全性,并且只有在所提供的类型都不支持运算符<并且无法将默认比较器作为参数提供时才会出现运行时错误。
|
![]() |
5
0
从记忆中,T也需要
|
![]() |
6
-1
为什么要重新发明数学的轮子
为什么要重新思考多年来得到增强的现有函数的内部数学,例如:
我建议使用 动态类型 从而利用运行时函数 超载 无需重新考虑多年来调试的现有科学的内部实施:
|
![]() |
Muhammad Umer · 为什么这个随机数猜谜游戏模拟产生5.8 6 月前 |
![]() |
Alisa Petrova · 在有向图中更改一对顶点以创建循环 8 月前 |
|
D W · Python-将浮点数从2转换为10到100位小数 8 月前 |
![]() |
Bartol · 确定python龟图形中的角度 1 年前 |
|
randomAlgo · 将弹簧设置为相同长度的成本最低 1 年前 |
![]() |
Fyodor · 在C中使用sin和cos计算数学表达式不正确? 1 年前 |
![]() |
Sergio · python中大量数字的乘法 1 年前 |