{
\"code\": 200,
\"title\": \"\",
\"content\": \"C#(CSharp)是微軟(Microsoft)為。NETFramework量身訂做的程式語言,C#擁有C\\/C 的強大功能以及VisualBasic簡易使用的特性,是第一個組件導向(Component-oriented)的程式語言,和C 與Java一樣亦為對象導向(object-oriented)程式語言。\\n\\nCsharp(音標[∫a:p])(又被簡稱為\\\"C#\\\")是微軟公司在二OOO年六月釋出的一種新的編程語言,並定於在微軟職業開發者論壇(PDC)上登台亮相。C#是微軟公司研究員AndersHejlsberg的最新成果。C#看起來與Java有著驚人的相似;它包括了諸如單一繼承、介麵、與Java幾乎同樣的語法,和編譯成中間代碼再運行的過程。但是C#與Java有著明顯的不同,它借鑒了Delphi的一個特點,與COM(組件對象模型)是直接整合的,而且它是微軟公司.NETwindows網絡框架的主角。\\n\\n在本文中,我將考察創建一種新計算機語言的一般動機,並將特彆指明是什麼原因導致了C#的出現,然後我將介紹C#和它與Java、C、C 的相似之處。其次我將討論一些存在於Java和C#之間的高層次的、和基礎的差彆。我將以衡量在用多種語言開發大型應用程式的時候所需的知識(或者對這種知識的缺乏程度)來結束本文,而這正是.NET和C#的一個主要戰略。目前,C#和.NET還隻能以C#語言規則,以及Windows2000的一個\\\"d預覽版本\\\",還有MSDN上迅速增多的文檔集子的形式獲得(還冇有最終定型)。\\n\\n定義\\n\\n微軟C#語言定義主要是從C和C 繼承而來的,而且語言中的許多元素也反映了這一點。C#在設計者從C 繼承的可選選項方麵比JAVA要廣泛一些(比如說struts),它還增加了自己新的特點(比方說源代碼版本定義).但它還太不成熟,不可能擠垮JAVA。C#還需要進化成一種開發者能夠接受和采用的語言。而微軟當前為它的這種新語言大造聲勢也是值得注意的。目前大家的反應是:“這是對JAVA的反擊”。\\n\\nC#更像JAVA一些,雖然微軟在這個問題上保持沉默。這也是意料中的事情,我覺得,因為JAVA近來很成功而使用JAVA的公司都報告說它們在生產效率上比C 獲得了提高。\\n\\nJAVA所帶來的巨大影響和大家對它的廣泛接受已經由工作於這種語言和平台之上的程式員數量明顯的說明瞭(估計世界範圍內共有兩百五十萬程式員使用JAVA)。由這種語言寫成的應用程式的數量是令人驚訝的並已經滲透了每一個級彆的計算,包括無線計算和移動電話(比如日本發明的JAVA電話)。C#能夠在用戶領域獲得這樣的禮遇嗎?我們必須等待並觀望,就象已經由SSI公司的CEO和主席KALPATHIS.SURESH指出來的那樣:\\\"我發現所有這些都是漸進的。如果C#不存在,我們總能回到JAVA或C和C 。這些都不完全是新技術,它們在更大的意義上來說隻是大公司製造的市場噱頭。我們必須給他們時間安頓下來看看這些是不是真的對IT工業有什麼影響。\\\"\\n\\nC#(CSHARP)是微軟對這一問題的解決方案。C#是一種最新的、麵向對象的編程語言。它使得程式員可以快速地編寫各種基於MICROSOFT.NET平台的應用程式,MICROSOFT.NET提供了一係列的工具和服務來最大程度地開發利用計算與通訊領域。\\n\\n正是由於C#麵向對象的卓越設計,使它成為構建各類組件的理想之選——無論是高級的商業對象還是係統級的應用程式。使用簡單的C#語言結構,這些組件可以方便的轉化為XML網絡服務,從而使它們可以由任何語言在任何操作係統上通過INTERNET進行調用。\\n\\n最重要的是,C#使得C 程式員可以高效的開發程式,而絕不損失C\\/C 原有的強大的功能。因為這種繼承關係,C#與C\\/C 具有極大的相似性,熟悉類似語言的開發者可以很快的轉向C#。\\n\\nC#從Java繼承而來的特點\\n\\n類:在C#中類的聲明與Java很相似.這是合理的因為經驗告訴我們Java模型工作得很好.Java的關鍵字import已經被替換成using,它起到了同樣的作用.一個類開始執行的起點是靜態Main()方法.下麵的HelloWorld程式展示了程式基本結構形式:\\n\\nusingSystem;\\n\\nclassHello\\n\\n{\\n\\nstaticvoidMain()\\n\\n{\\n\\nConsole.WriteLine(\\\"Hello,world\\\");\\n\\nConsole.ReadLine();\\n\\n}\\n\\n}\\n\\n在這個例子中,System這個名字指向一個包括了基本C#實用類集合的命名空間(namespace).這個命名空間包括了Console類,它在這個例子中被用來輸出一個字串.類可以是抽象的和不可繼承的:一個被申明成abstract的類不能被實例化;它隻能被用做一個基類.C#關鍵字lock就象Java關鍵字final,它申明一個類不是抽象的,但是它也不能被用做另一個類的基類.介麵:就象在Java中一樣,一個介麵是一組方法集合的抽象定義.當一個類或結構體實現一個介麵的時候,它必須實現這個介麵中定義的所有方法.一個單一的類可以實現幾個介麵.也許以後會出現一些微妙的差彆,但是這個特點看起來與Java相比冇有變化.布爾運算:條件表達式的結果是布爾數據類型,布爾數據類型是這種語言中獨立的一種數據類型.從布爾類型到其他類型冇有直接的轉換過程.布爾常量true和false是C#中的關鍵字.錯誤處理:如Java中那樣,通過拋出和捕捉異常對象來管理錯誤處理過程.內存管理:由底層.NET框架進行自動內存垃圾回收.一個基本的C#類中包含數據成員、屬性、構造器和方法。屬性可以是靜態或實例成員。\\n\\n強類型\\n\\nC#是一個強類型的語言,它的數值類型有一些可以進行隱式轉換,其他的必須顯式轉換,隱式轉換的類型隻能是長度短的類型轉換成長的類型,例如int可以轉換成long,float,double,decimal.反之必須顯式的轉換.例:\\n\\ninta=7;\\n\\nfloatb=a;\\/\\/隱式轉換\\n\\nlongc=12L;\\/\\/和C 一樣必須加上後綴L才能定義為long型不然就為int型了\\n\\na=(int)c;\\/\\/顯式轉換\\n\\n使用上麵的顯示轉換不能用在bool和string類型上。\\n\\nC#從C和C 繼承的特點\\n\\n編譯:程式直接編譯成標準的二進製可執行形式.如果前麵的HelloWorld程式被儲存成一個文字檔案並被命名為Hello.cs,它將被編譯成命名Hello.exe的可執行程式.\\n\\n結構體:一個C#的結構體與C 的結構體是相似的,因為它能夠包含數據聲明和方法.但是,不象C ,C#結構體與類是不同的而且不支援繼承.但是,與Java相同的是,一個結構體可以實現介麵(interface).\\n\\n預編譯:C#中存在預編譯指令支援條件編譯,警告,錯誤報告和編譯行控製.可用的預編譯指令有:\\n\\n#define\\n\\n#undef\\n\\n#if\\n\\n#elif\\n\\n#else\\n\\n#endif\\n\\n#warning\\n\\n#error\\n\\n#line[]\\n\\n冇有了#include偽指令.你無法再用#define語句對符號賦值,所以就不存在源代碼替換的概念--這些符號隻能用在#if和#elif偽指令裡.在#line偽指令裡的數字(和可選的名字)能夠修改行號還有#warning和#error輸出結果的檔名.\\n\\n命名空間\\n\\n命名空間提供了一種方法來唯一標識一個類型以及進行類型的邏輯組織。命名空間可以巢狀使用並可以跨程式集使用。一個類型的完全限定名包括所有命名空間。在一個命名空間中,所有的類型必須有一個唯一的名稱。基本類型庫(BaseClassLibrary)是.NETFramework的所有語言可下可用的命名空間集。命名空間是組織和重用代碼的編譯單元。命名空間和檔案的結構關係不像Java,命名空間與檔案的結構之間冇有關係。using語句是用來在使用類型時不需要用全限定名的類型,全限定名也可以被使用。命名空間中的聲明,C#與C 有所不同,是C#獨有的特點。\\n\\n操作符重載:\\n\\n一些操作符能夠被重載,而另一些則不能.特彆的是,冇有一個賦值運算符能夠被重載.能夠被重載的單目操作符是:\\n\\n -!~ --truefalse\\n\\n能夠被重載的二元運算符是:\\n\\n -*\\/%&|^>==!=>=