您好,登錄后才能下訂單哦!
// 摘要:
// 定義一種特定于類型的通用比較方法,值類型或類通過實現此方法對其實例進行排序。
[ComVisible(true)]
public interface IComparable
{
// 摘要:
// 將當前實例與同一類型的另一個對象進行比較,并返回一個整數,該整數指示當前實
//例在排序順序中的位置是位于另一個對象之前、之后還是與其位置相同。
//
// 參數:
// obj:
// 與此實例進行比較的對象。
//
// 返回結果:
// 一個值,指示要比較的對象的相對順序。返回值的含義如下:值含義小于零此實例小于 //obj。零此實例等于 obj。大于零此實例大于 obj。
//
// 異常:
// System.ArgumentException:
// obj 不具有與此實例相同的類型。
int CompareTo(object obj);
}
備注:
此接口由具有可排序值的類型實現。 它要求實現類型定義單個方法 CompareTo(Object),該方法指示當前實例在排序順序中的位置是位于同一類型的另一個對象之前、之后還是與其位置相同。 實例的 IComparable 實現由 Array.Sort 和 ArrayList.Sort 等方法自動調用。CompareTo(Object) 方法的實現必須返回有三個值之一的 Int32,如下表中所示。
示例代碼:(來自官方開發文檔)
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
若疑問可參看官方的開發者文檔!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。