Tag: icomparable

如何比较genericstypes的值?

如何比较genericstypes的值? 我已经减less到最小的样本: public class Foo<T> where T : IComparable { private T _minimumValue = default(T); public bool IsInRange(T value) { return (value >= _minimumValue); // <– Error here } } 错误是: 运算符'> ='不能应用于'T'和'T'types的操作数。 到底怎么回事!? T已经被限制为IComparable ,甚至当它限制为值types( where T: struct )时,我们仍然不能应用任何运算符< , > , <= , >= , ==或!= 。 (我知道涉及Equals()解决方法存在==和!= ,但对关系运算符没有帮助)。 所以,有两个问题: 我们为什么要观察这种奇怪的行为? 什么让我们不能比较已知是IComparable的genericstypes的值? 这难道不是以某种方式击败了通用约束的全部目的吗? […]

IComparable和IEquatable接口有什么区别?

这两个接口似乎比较对象的平等,所以他们之间的主要区别是什么?

何时使用IComparable <T> Vs. 的IComparer <T>

我试图找出我需要实现哪些接口。 他们都基本上做同样的事情。 我什么时候可以使用一个呢?

IStructuralEquatable和IStructuralComparable能解决什么问题?

我已经注意到这两个接口,以及几个相关的类,已经被添加到.NET 4中。对我来说,这看起来有些多余。 我已经阅读了几篇关于它们的博客,但是我仍然无法弄清楚.NET 4之前他们解决了哪些棘手的问题。 什么用途是结构可以和结构可比较的?

如何实现IComparable接口?

我正在用一个类的实例填充一个数组: BankAccount[] a; . . . a = new BankAccount[] { new BankAccount("George Smith", 500m), new BankAccount("Sid Zimmerman", 300m) }; 一旦我填充这个数组,我想以平衡量对它进行sorting。 为了做到这一点,我希望能够检查每个元素是否可以使用IComparablesorting。 我需要使用接口来做到这一点。 到目前为止,我有以下代码: public interface IComparable { decimal CompareTo(BankAccount obj); } 但我不确定这是否是正确的解决scheme。 任何build议?