Tag: 比较到

Sort()和CompareTo()方法的内部工作

我一直试图弄清楚CompareTo()方法如何在内部工作,但我失败了。 我搜索了这个网站并阅读了一些post,我想我已经看到了MSDN中有关这个主题的所有内容,我似乎并没有得到它。 一个MSDN示例: public int CompareTo(object obj) { if (obj == null) { return 1; } Temperature otherTemperature = obj as Temperature; if (otherTemperature != null) { return this.temperatureC.CompareTo(otherTemperature.temperatureC); } else { throw new ArgumentException(“the object is not a temperature”); } } 这是CompareTo()方法实现的MSDN示例。 我理解这一点,我理解IComparable接口是如何工作的,如果我理解正确的话,当我使用ArrayList.Sort()方法时会调用它。 我不明白的是:程序何时传递CompareTo(object obj)方法的参数? 或者换句话说, Sort()方法如何工作? 我的意思是,这段代码将温度的实例与另一个温度实例进行比较,但是程序何时或如何获得第二个温度实例进行比较? 我希望我的问题有道理。 我已经尝试在屏幕上打印CompareTo()过程,所以也许我可以对输出进行逆向工程,但我更加困惑自己。 编辑 :也许如果我一步一步走,我可以更好地解释自己。 假设我在ArrayList有3个温度对象: ArrayList […]