由于我是C#编程语言的新手,我对C#语法感到有些困惑。
一种可以获得两个值来比较这两个值的方法可以写成a.compareTo(b)
而不是compareTo(a,b)
怎么可能?
假设compareTo
返回int
变量a
被链接到int
并进行比较!怎么样?
提前谢谢。
答案 0 :(得分:1)
在C#中,int
关键字实际上代表System.Int32
类型的结构。这种类型有几种可用的方法,其中一种方法就是你所看到的CompareTo(Int32)
。
CompareTo
对象, Int32
接受一个整数值,将该值与自身进行比较并返回结果,非常简单如下:
public int CompareTo(int value)
{
if (this < value)
{
return -1;
}
if (this > value)
{
return 1;
}
return 0;
}
this
关键字引用此方法所属的Type的当前实例,在您的情况下为a
。
可以找到Int32
及其方法的文档here。
答案 1 :(得分:0)
此方法只是一个定义,必须由特定的类或值类型实现才能生效。返回值部分中指定的比较的含义(“先行”,“出现在”和“跟随”的位置相同)取决于具体的实现。
在这个例子中,他们将温度与华氏温度值进行比较,这是一个双倍的:
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");
}
但是在你自己的课堂上,你可以决定如何将它的一个实例与另一个实例进行比较。