// 摘要:
目前創(chuàng)新互聯(lián)建站已為上1000家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)站空間、網(wǎng)站運(yùn)營(yíng)、企業(yè)網(wǎng)站設(shè)計(jì)、鹽津網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶(hù)導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶(hù)和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
// 定義一種特定于類(lèi)型的通用比較方法,值類(lèi)型或類(lèi)通過(guò)實(shí)現(xiàn)此方法對(duì)其實(shí)例進(jìn)行排序。
[ComVisible(true)]
public interface IComparable
{
// 摘要:
// 將當(dāng)前實(shí)例與同一類(lèi)型的另一個(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í)例相同的類(lèi)型。
int CompareTo(object obj);
}
備注:
此接口由具有可排序值的類(lèi)型實(shí)現(xiàn)。 它要求實(shí)現(xiàn)類(lèi)型定義單個(gè)方法 CompareTo(Object),該方法指示當(dāng)前實(shí)例在排序順序中的位置是位于同一類(lèi)型的另一個(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ā)者文檔!