您好,登錄后才能下訂單哦!
// 摘要:
// 定義一種特定于類型的通用比較方法,值類型或類通過(guò)實(shí)現(xiàn)此方法對(duì)其實(shí)例進(jìn)行排序。
[ComVisible(true)]
public interface IComparable
{
// 摘要:
// 將當(dāng)前實(shí)例與同一類型的另一個(gè)對(duì)象進(jìn)行比較,并返回一個(gè)整數(shù),該整數(shù)指示當(dāng)前實(shí)
//例在排序順序中的位置是位于另一個(gè)對(duì)象之前、之后還是與其位置相同。
//
// 參數(shù):
// obj:
// 與此實(shí)例進(jìn)行比較的對(duì)象。
//
// 返回結(jié)果:
// 一個(gè)值,指示要比較的對(duì)象的相對(duì)順序。返回值的含義如下:值含義小于零此實(shí)例小于 //obj。零此實(shí)例等于 obj。大于零此實(shí)例大于 obj。
//
// 異常:
// System.ArgumentException:
// obj 不具有與此實(shí)例相同的類型。
int CompareTo(object obj);
}
備注:
此接口由具有可排序值的類型實(shí)現(xiàn)。 它要求實(shí)現(xiàn)類型定義單個(gè)方法 CompareTo(Object),該方法指示當(dāng)前實(shí)例在排序順序中的位置是位于同一類型的另一個(gè)對(duì)象之前、之后還是與其位置相同。 實(shí)例的 IComparable 實(shí)現(xiàn)由 Array.Sort 和 ArrayList.Sort 等方法自動(dòng)調(diào)用。CompareTo(Object) 方法的實(shí)現(xiàn)必須返回有三個(gè)值之一的 Int32,如下表中所示。
示例代碼:(來(lái)自官方開(kāi)發(fā)文檔)
using System; using System.Collections; 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 double Fahrenheit { get { return this.temperatureF; } set { this.temperatureF = value; } } public double Celsius { get { return (this.temperatureF - 32) * (5.0/9); } set { this.temperatureF = (value * 9.0/5) + 32; } } } public class CompareTemperatures { public static void Main() { ArrayList temperatures = new ArrayList(); // Initialize random number generator. Random rnd = new Random(); // Generate 10 temperatures between 0 and 100 randomly. for (int ctr = 1; ctr <= 10; ctr++) { int degrees = rnd.Next(0, 100); Temperature temp = new Temperature(); temp.Fahrenheit = degrees; temperatures.Add(temp); } // Sort ArrayList. temperatures.Sort(); foreach (Temperature temp in temperatures) Console.WriteLine(temp.Fahrenheit); } } // The example displays the following output to the console (individual // values may vary because they are randomly generated): // 2 // 7 // 16 // 17 // 31 // 37 // 58 // 66 // 72 // 95
若疑問(wèn)可參看官方的開(kāi)發(fā)者文檔!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。