【发布时间】:2016-07-07 17:25:31
【问题描述】:
如何正确实现 IComparable 接口? 我有以下选择:
public class Temperature : IComparable
{
// The temperature value
protected double temperatureF;
public int CompareTo(object obj)
{
if (obj == null) return 1;
Temperature otherTemperature = obj as Temperature;
if (otherTemperature != null)
return this.temperatureF.CompareTo(otherTemperature.temperatureF);
else
throw new ArgumentException("Object is not a Temperature");
}
}
或
public class Temperature : IComparable
{
// The temperature value
protected double temperatureF;
public int CompareTo(object obj)
{
if (obj == null) return 1;
Temperature otherTemperature = obj as Temperature;
try
{
return this.temperatureF.CompareTo(otherTemperature.temperatureF);
}
catch
{
throw new ArgumentException("Object is not a Temperature");
}
}
}
哪个是正确的方法,为什么?
【问题讨论】:
标签: c# asp.net .net asp.net-mvc compare