|
|
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
为什么要重新发明数学的轮子
为什么要重新思考多年来得到增强的现有函数的内部数学,例如:
我建议使用 动态类型 从而利用运行时函数 超载 无需重新考虑多年来调试的现有科学的内部实施:
|
|
|
A B · C#Excel自动调整列避免长文本时出错 9 月前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 9 月前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 9 月前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 9 月前 |