国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

解析.Net編程接口剖析系列之比較和排序_.Net教程

2024-07-10 12:51:30
字體:
來源:轉載
供稿:網友

推薦:揭秘.net基礎知識錯誤注意二十二點知識
1:command調用存儲過程的時候,如果輸出是dataset,selectcommand的command對象的connection先要指出,否則catch一輩子也是空的.. 2:存儲過程的varchar字段如果是x.x的這種格式,容易出現細

我們知道,與C 相比較,C#以及整個.Net并不支持多繼承,而相應的,C#支持了接口,并且支持一個類型實現多個接口。對于接口的概念,相信大部分讀者已經有了很好的了解,而我這里談談個人對于接口理解,只求拋磚引玉。

在我認為,一個接口就是一個對類型的某種能力的認證,并且是以某種標準化的形式將這種能力規范出來。你的類型實現了某個接口,換而言之,也就是說這個類型具備了此接口所標識的能力。比如現在出國留學考托福GRE,開車考駕照這些東西,其實就是相當于我們編程中接口;從某種意義上說,你通過了GRE,就說明你具備在國外學習所需要的語言能力,而你考取了駕照,就證明了你具有上路行駛的能力了。接口同樣如此,給你類型實現特定的一些接口,就是給他們標記了他們所具備的特別能力,而一些依賴這些能力的功能,得以用通用的代碼實現重用,實現可擴展。

我的這個關于接口的系列文章,主要是對.Net編程一些非常重要的接口來進行詳細講解,深入了解這些接口的原理和應用。這對于我們寫出精簡優美的代碼,是非常有幫助的;畢竟,我們在知道自己想做什么之后,首先應該知道.Net Framework能給我們做什么。

在本篇以及后續的幾篇文章我們將會談到以下幾個主題:

(一)比較和排序(IComparable和IComparer)

(二)枚舉(IEnumerable和IEnumerator)

(三) 序列化(ISerializable和IXmlSerializable)

System.IComparable & System.IComparable<T>

顧名思義,一個實現了IComparable的class應該就是一個可以對實例進行相互比較的class,我們先來看看它的定義:

以下為引用的內容:
[ComVisible(true)]
public interface IComparable
{
int CompareTo(object obj);
}

這個接口相當簡單,只提供了一個接口函數:CompareTo,如果當前對象比被比較的對象小,那么返回負數;如果相當,則返回0;如果當前對象比被比較的對象大,則返回正數。

但是,如果你覺得這個接口僅僅是能夠讓你比較兩個對象大小,那么你就錯了,這個接口更大的作用是能夠實現了該類型線性數據結構的排序功能。比如List<T>.Sort()和Array的靜態方法Sort都能夠很好地利用IComparable來對數據進行排序,排序算法由類庫實現,對于我們來說,只需要讓自己的類型實現IComparable接口,負責比較兩個對象大小的算法就可以了。

IComparable<T>是一個泛型接口,用于實現對特定類型的對象的比較,用法和IComparable基本一致,這里不再進行贅述,下面的例子也是根據IComparable來寫的。

我們來看看下面的代碼,這里定義了一個學生類Student,每個學生有自己名字和分數。Student類實現了IComparable接口,兩個學生之間直接按照名字進行比較。順便說明Scores類用于存儲學生的成績。

分享:Windows CE.Net下矩陣鍵盤開發設計詳解
引言 隨著現代科技日新月異的發展,作為新興產業的嵌入式移動信息設備的應用越來越廣。這些嵌入式設備中的PDA以其體積小、重量輕、便于攜帶、功能強大、功耗低等特點而備受青睞。鍵盤作

共4頁上一頁1234下一頁
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 桂东县| 尼勒克县| 南部县| 辽宁省| 洪江市| 凤台县| 来凤县| 安新县| 龙门县| 江陵县| 漯河市| 闽清县| 珲春市| 黑山县| 通渭县| 彝良县| 尼玛县| 德令哈市| 永济市| 二手房| 荣昌县| 寻乌县| 常熟市| 平山县| 林芝县| 新田县| 闻喜县| 荣成市| 金门县| 酒泉市| 陆良县| 东辽县| 托克逊县| 罗甸县| 普兰店市| 聊城市| 八宿县| 新蔡县| 太仆寺旗| 新蔡县| 石泉县|