|
相關文章:.NET十年(下)
引言
語言是程序開發者行走江湖的手上利器,各大門派的高手在論壇、博客為了自家門派爭吵不已早是技術世界中的亮麗風景,雖多少為剛剛踏入江湖的新手提供了思考的素材,但也同時迷惑了初出茅廬的前行方向。
本文不欲計較門派的高下,旨在明辨技術的真諦,這就是.NET平臺下的開發利器:C#語言,并從其變遷的進程中對于.NET技術發展把玩一番。
本篇,我們走在歷史,對.NET的過去尤其是c#語言做以回顧,具體而言就是.NET 1.0、2.0、3.0的一路走來。
.NET之,歷史腳步
C#十年了。這個日期是從Anders Hejlsberg在1998年組建C#團隊開始算起的,掐指算來已是十年有余了。作為.NET平臺下的靜態強類型語言,在過去10年的發展歷程中披荊斬棘,已經逐漸成為應用開發語言中的佼佼者。從TIOBE開發語言排行榜的最新統計來看,C#位居第六成為開發語言市場的頂級產品:
(注:此為2008年12月的TIOBE開發語言排行榜,參考http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html)
因此,在我們講解歷史的開始,將C#發展歷史中的里程碑作以標記,來感受一下C# 10年的發展歷程,為每開發者在心底搭起一座通往未來的橋梁。
下面我們分別從不同的歷史階段來了解C#語言的變遷,并討論在每個變遷的里程碑上值得品味的閃光點,并由此為未來的發展打一個基礎。
1.0,從誕生到立足
2000年之夏,微軟大當家——蓋茨先生著手戰略調整,微軟大刀闊斧的進行了技術改革與創新,并由此為世界帶來一個新的名詞,這就是.NET。那么什么是.NET呢?在.NET這一概念誕生之初,這一概念連微軟本身都充滿了定位的錯亂和迷茫,以至于一時之間處處皆為.NET,大有一統江湖之勢。隨著.NET平臺的逐漸完善,概念和定位上的混亂已經日漸清晰,作為這場變革中的一項重要內容,一種全新的、能夠適應.NET平臺特性的高級語言C#也隨之誕生。這一任務理所當然的落在了Anders Hejlsberg的身上,作為Delphi之父,大師級的Anders從1998年11月開始領導了他的小組為這個世界帶來全新的語言寵兒,這就是:C#。
初出茅廬的C#,就像羞羞答答的小姑娘,步步留心、時時在意,學著他人的模樣,生怕在前輩面前丟臉。當她以全新的姿態出現在萬千程序開發者眼前時,其兼取百家之長、優雅簡潔之態、摒棄復雜之弊的特性,立時令所有的觀望折服。在迎來所有目光的關注的同時,迅速成為高級語言戰場的驕子。
那么,C#誕生之初兼取百家之長,具體都有哪些優秀品質呢,總結起來主要體現在兩個方面包括:
- 面向對象編程。C#實現對屬性、事件、委托、方法、索引器、構造器的全面支持,為面向對象的封裝、繼承、多態和接口提供了語言級別的支持。以繼承為例,c#支持單實現繼承和多接口繼承,摒棄了C++中多繼承帶來的復雜性。
- 跨平臺運行時支持。CLR是.NET平臺下應用程序的通用語言運行時,是C#程序賴以生存的跨平臺環境,因此C#具有了.NET平臺語言的所有優勢,通用類型系統、自動內存管理、統一異常處理、完全的FCL訪問權,都成為C#無與倫比的優勢所在。
2.0,變革之作
C# 2.0是一次完善和補充,也是一次變革與重生。在2.0中引入了諸多的語言特性,完善了1.0基礎上的某些不足,例如匿名方法將代碼放在委托而無需創建新的方法;可空類型實現了對值類型的null操作;而部分類將一個類分解到多個類文件中。這些補充和完善, 總結起來主要包括:
- 匿名方法
- 可空類型
- 部分類
- 迭代器
- 泛型
其中,泛型支持是C# 2.0的重中之重,.NET框架從CLR級別實現了對泛型的支持,提供專門的IL指令支持泛型操作,同時配合C#語言機制構造一種全新的編程結構,實現了對類型抽象化的通用處理方式,這就是算法重用。
以最簡單的交換數據為例,我們來了解泛型帶來的好處:
// Release : code01, 2009/05/07
// Author : Anytao, http://www.anytao.com
public static void Swap(ref int x, ref int y)
{
int temp = x;
x = y;
y = temp;
}
public static void Swap(ref string str1, ref string str2)
{
string temp = str1;
str1 = str2;
str2 = temp;
}
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。