C#簡介

來源:互聯網
上載者:User

在過去的二十年裡,C和C++已經成為在商業軟體的開發領域中使用最廣泛的語言。它們為程式員提供了十分靈活的操作,不過同時也犧牲了一定的效率。與諸如Microsoft  Visual Basic等語言相比,同等層級的C/C++應用程式往往需要更長時間來開發。由於C/C++語言的複雜性,許多程式員都試圖尋找一種新的語言,希望能在功能與效率之間找到一個更為理想的權衡點。

目前有些語言,以犧牲靈活性的代價來提高效率。可是這些靈活性正是C/C++程式員所需要的。這些解決方案對編程人員的限制過多(如屏蔽一些底層代碼控制的機制),其所提供的功能難以令人滿意。這些語言無法方便地同早先的系統互動,也無法很好地和當前的網路編程相結合。

對於C/C++使用者來說,最理想的解決方案無疑是在快速開發的同時又可以調用底層平台的所有功能。他們想要一種和最新的網路標準保持同步並且能和已有的應用程式良好整合的環境。另外,一些C/C++開發人員還需要在必要的時候進行一些底層的編程。

微軟推出C#

C# (C sharp) 是微軟對這一問題的解決方案。C#是一種最新的、物件導向的程式設計語言。它使得程式員可以快速地編寫各種基於Microsoft .NET平台的應用程式,Microsoft .NET提供了一系列的工具和服務來最大程度地開發利用計算與通訊領域。

正是由於C#物件導向的卓越設計,使它成為構建各類組件的理想之選——無論是進階的商業對象還是系統級的應用程式。使用簡單的C#語言結構,這些組件可以方便的轉化為XML 網路服務,從而使它們可以由任何語言在任何作業系統上通過Internet進行調用。

最重要的是,C#使得C++程式員可以高效的開發程式,而絕不損失C/C++原有的強大的功能。因為這種繼承關係,C#與C/C++具有極大的相似性,熟悉類似語言的開發人員可以很快的轉向C#。

效率與安全性

新興的網路經濟迫使商務企業必須更加迅速的應對競爭的威脅。開發人員必須不斷縮短開發週期,不斷推出應用程式的新版本,而不僅僅是開發一個“標誌性”的版本。

C#在設計時就考慮了這些問題。它使開發人員用更少的代碼做更多的事,同時也不易出錯。

支援現有的網路編程新標準

新的應用程式開發模型意味著越來越多地解決方案依賴於新出現的網路標準,例如HTML,XML,SOAP等。現存的開發工具往往都是早於Internet出現的,或者是在我們所熟知的網路還處於孕育期時出現的。所以,它們一般無法很好地支援最新的網路技術。

C#程式員可以在Microsoft .NET平台上事半功倍的構建應用程式的擴充架構。C#包含了內建的特性,使任何組件可以輕鬆轉化為XML網路服務,通過Internet被任何作業系統上啟動並執行任何程式調用。

更突出的是,XML網路服務架構可以使現有的XML網路服務對程式員來說就和C#對象一樣。這樣,程式員就可以方便地使用他們已有的物件導向的編程技巧來開發利用現有的XML網路服務。

還有一些精細的特性,使得C#成為一流的網路編程工具。例如,XML正逐漸成為在網路上傳輸結構化資料的標準。這種資料集合往往非常小。為提高效能,C#允許把XML資料直接映射到struct資料類型,而不是class。這樣對處理少量的資料非常有效。

消除大配量序錯誤  

即使是專家級的C++程式員也常會犯一些最簡單的小錯誤——比如忘了初始設定變數,但往往就是這些小錯誤帶來了難以預料的問題,有些甚至需要很長時間來尋找和解決。一旦一個程式作為產品來使用,就算最簡單的錯誤校正起來也可能要付出極其昂貴的代價。

C#的現代化設計能夠消除很多常見的C++編程錯誤。 例如:

1. 資源回收減輕了程式員記憶體管理的負擔。

2. C#中變數由環境自動初始化。

3. 變數是型別安全的。

這樣,程式員編寫與維護那些解決複雜商業問題的程式就更方便了。

對版本的更新提供內在的支援降低了開發成本

更新軟體組件是一項很容易出錯的工作,因為代碼的修改可能無意間改變原有程式的語義。為協助開發人員進行這項工作,C#為版本的更新提供內在的支援。例如,方法重載必須顯式聲明。這樣可以防止編碼錯誤,保證版本更新的靈活性。還有一個相關的特性就是對介面和介面繼承的內在支援。這些特性使得C#可以開發複雜的架構並且隨著時間不斷髮展更新它。

總體來說,這些特性使得開發程式項目的後續版本的過程更加健壯,從而減少後續版本的開發成本。

商業過程和軟體實現的更好對應

企業的商業計劃要付諸現實,必須在抽象的商業過程和實際的軟體實現之間建立緊密地對應。不過大多數語言都很難做到這點。例如,如今的程式員們一般使用代碼注釋來註明哪個類對應於某個抽象的商業對象。

C#語言允許類型定義的,擴充的中繼資料。這些中繼資料可以應用於任何對象。項目構建者可以定義領域特有的屬性並把他們應用於任何語言元素-類,介面等等。然後,開發人員可以編程檢查每個元素的屬性。這樣,很多工作都變得方便多了,比如編寫一個小工具來自動檢查每個類或介面是否被正確定義為某個抽象商業對象的一部分,或者只是建立一份基於對象的領域特有屬性的報表。定製的中繼資料和程式碼之間的緊密對應有助於加強程式的預期行為和實際實現的之間的對應關係。

擴充互動性

作為一種自動管理的,型別安全的環境,C#適合於大多數公司專屬應用程式程式。但實際的經驗表明有些應用程式仍然需要一些底層的代碼,要麼是因為基於效能的考慮,要麼是因為要與現有的應用程式介面相容。這些情況可能會迫使開發人員使用C++, 即使他們本身寧願使用更高效的開發環境。

C#採用以下對策來解決這一問題:

1. 內建對組建物件模型(COM)和基於Windows?的API的支援;

2.允許有限制地使用純指標(Native Pointer)。

在C#中,每個對象都自動產生為一個COM對象。開發人員不再需要顯式的實現IUnknown和其他COM介面.這些功能都是內建的.類似的,C#可以調用現有的COM對象,無論它是由什麼語言編寫的。

C#包含了一個特殊的功能,使程式可以調用任何純API。在一段特別標記的代碼中,開發人員可以使用指標和傳統C/C++特性,如手工的記憶體管理和指標運算。這是其相對於其它環境的極大優勢。這意味著C#程式員可以在原有的C/C++代碼的基礎上編寫程式,而不是徹底放棄那些代碼。

無論是支援COM還是純API的調用,都是為了使開發人員在C#環境中直接擁有必要的強大功能。

結論

C#是一種現代的物件導向語言。它使程式員快速便捷地建立基於Microsoft .NET平台的解決方案。這種架構使C#組件可以方便地轉化為XML網路服務,從而使任何平台的應用程式都可以通過Internet調用它。

C#增強了開發人員的效率,同時也致力於消除編程中可能導致嚴重結果的錯誤。C#使C/C++程式員可以快速進行網路開發,同時也保持了開發人員所需要的強大性和靈活性。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.