C#,深入淺出全接觸(一)
發(fā)布時(shí)間:2008-07-08 閱讀數(shù): 次 來(lái)源:網(wǎng)樂(lè)原科技
一、什么是 C#?
C# 是由Microsoft開(kāi)發(fā)的一種新型編程語(yǔ)言,由于它是從C和C++ 中派生出來(lái)的,因此具有C++的功能。同時(shí),由于是Microsoft公司的產(chǎn)品,它又同 VB一樣簡(jiǎn)單。對(duì)于web開(kāi)發(fā)而言,C#象 Java,同時(shí)具有Delphi的一些優(yōu)點(diǎn)。Microsoft宣稱:C#是開(kāi)發(fā).NET框架應(yīng)用程序的最好語(yǔ)言。
二、Java與 C#
要學(xué)習(xí)C#,不能不首先看一看Java語(yǔ)言。
相對(duì)于其他編程語(yǔ)音,Java有一個(gè)無(wú)庸置疑的優(yōu)點(diǎn):用戶以及編譯器第一次不必了解生成可執(zhí)行代碼的特定CPU細(xì)節(jié)。Java引入了一個(gè)編譯代碼中間層,叫做字節(jié)代碼,并使用一個(gè)虛擬抽象的機(jī)器,而不是一個(gè)真實(shí)的機(jī)器。當(dāng)Java編譯器結(jié)束了一個(gè)源文件的編譯后,你所得到的不是可以立即在一個(gè)給定平臺(tái)上運(yùn)行的代碼,而是可以在任何真實(shí)的平臺(tái)上運(yùn)行的字節(jié)代碼,唯一的條件就是這個(gè)平臺(tái)要理解和支持Java。這些發(fā)展包含著一個(gè)文化的變革。作為一個(gè)開(kāi)發(fā)人員,你只需要確定Java虛擬機(jī)(JVM)提供的抽象層,不同的OS銷售商負(fù)責(zé)執(zhí)行代碼層,從而將中立于平臺(tái)的字節(jié)代碼映射到主機(jī)平臺(tái)的機(jī)構(gòu)中。在這種情況下,Java似乎是統(tǒng)一分布式計(jì)算機(jī)世界的領(lǐng)袖候選人了?!熬帉?xiě)一次,永遠(yuǎn)運(yùn)行”(并且無(wú)論在哪里)一度成為Java誘人但卻真實(shí)的口號(hào)。
那么為什么說(shuō)Java只是“似乎”是一個(gè)好東西呢?跨平臺(tái)理論的發(fā)展很好地證明了這一點(diǎn)。我們看到,將Java代碼從一個(gè)平臺(tái)移植到另一個(gè)平臺(tái)—Java這個(gè)語(yǔ)言最重要和最受吹捧的特點(diǎn)—并不象宣傳的那樣容易。任何Java平臺(tái)都有其自己的虛擬機(jī),它可以理解通用的字節(jié)代碼,并且及時(shí)地將其編譯為本地代碼。矛盾由此產(chǎn)生,不同虛擬機(jī)的執(zhí)行也很不相同,這一點(diǎn)足以使代碼的移植比預(yù)期耗費(fèi)多得多的時(shí)間,而且基本上不是自動(dòng)的。
那么,Java模型的好處在哪里呢?首先,Java是一種先進(jìn)的、面向?qū)ο蟮恼Z(yǔ)言,包含了預(yù)防常見(jiàn)錯(cuò)誤的內(nèi)置功能,并在僅僅一兩個(gè)對(duì)象中攜帶了許多經(jīng)常需要用到的功能。與C++相比,Java更易于讀寫(xiě),不容易出錯(cuò),而且更加美觀,但是它速度較慢也不太靈活。想實(shí)現(xiàn)在任何軟件和硬件平臺(tái)上都可虛擬移植,Java盡可能少地使用了公分母模型,也就是說(shuō)放棄了將每個(gè)平臺(tái)開(kāi)發(fā)到極限的能力。第二,虛擬機(jī)的概念本身就是可移植和可共用的,因此對(duì)于分布式環(huán)境來(lái)說(shuō)是理想的。Java對(duì)于為非Windows平臺(tái)開(kāi)發(fā)代碼是最好的語(yǔ)言。
那么對(duì)于Windows平臺(tái)來(lái)說(shuō),Java又怎么樣呢?讓Java適應(yīng)Windows是不可能的,這是由于Sun的許可約束問(wèn)題。但是Java實(shí)在是太吸引人了,Microsoft比誰(shuí)都能更清楚這一點(diǎn)。因此,Microsoft又一次采取了“拿來(lái)主義”的手法,很好地利用了Java 的眾多特性,隆重推出了Windows平臺(tái)的新銳力量,它就是相當(dāng)簡(jiǎn)單但十分強(qiáng)大的面向?qū)ο蟮腃#編程語(yǔ)言。C#超過(guò)了C++,它天生就包含了.NET框架類庫(kù)中的所有類,并使語(yǔ)法簡(jiǎn)單化。
可以說(shuō),Java具備的優(yōu)點(diǎn),C#都可以或者都將具備!
三、C#的主要特征
C# 是.NET的關(guān)鍵性語(yǔ)言,它是整個(gè).NET平臺(tái)的基礎(chǔ)。與C#相比,.NET所支持的其它語(yǔ)言顯然是配角身份。比如,VB.NET的存在主要是對(duì)千萬(wàn)個(gè)VB開(kāi)發(fā)人員的負(fù)責(zé)。對(duì)于JScript.NET和 Managed C++ 也同樣可以這么說(shuō),后者只是增加了調(diào)用.NET類的C++ 語(yǔ)言。C#是唯一沒(méi)有在設(shè)計(jì)思路中加入了前輩語(yǔ)言某種遺傳的新事物。
.NET平臺(tái)將 C#作為其固有語(yǔ)言,重溫了許多Java的技術(shù)規(guī)則。C#中也有一個(gè)虛擬機(jī),叫做公用語(yǔ)言運(yùn)行環(huán)境(CLR),它的對(duì)象也具有同樣的層次。但是 C#的設(shè)計(jì)意圖是要使用全部的Win32 API甚至更多。由于C#與 Windows的體系結(jié)構(gòu)相似,因此 C# 很容易被開(kāi)發(fā)人員所熟悉。
Java的目的是要拯救分布式計(jì)算世界,C# 則不同。C#本質(zhì)上是C++的進(jìn)化產(chǎn)物,使用了包括聲明、表達(dá)式及操作符在內(nèi)的許多C++特征,但是 C#還有更多的增強(qiáng)功能,比如類型安全(type-Safe)、事件處理、碎片帳集、代碼安全性等。在C#中,除了可以使用許多API,更能使用.NET類。特別地是,我們可以處理COM的自動(dòng)化和C類型的函數(shù)。
C#還讓你調(diào)用無(wú)管理的代碼,也就是在CLR引擎控制之外的代碼。這種不安全的模式允許你操作原始指針來(lái)讀和寫(xiě)內(nèi)置碎片帳集控制以外的內(nèi)存。
四、安裝運(yùn)行環(huán)境
安裝.NET SDK 是在機(jī)器上運(yùn)行C# 的第一步。.NET SDK 可以安裝在Windows ME、Windows NT或Windows 2000上,但是最好的選擇是Windows 2000上。選擇了操作系統(tǒng)后,再執(zhí)行以下步驟:
●安裝 IE 5.5
●安裝Microsoft .NET Framework SDK。它是免費(fèi)的,可以從以下站點(diǎn)下載.NET Framework SDK.
●完成以上安裝后,就可以在任何文本編輯器中編寫(xiě)代碼了,最后保存為擴(kuò)展名為.cs的文件