C#結合了多種程式語言的精華,因此在學習語法上具有壓倒性的優勢條件。
C#屬於強型別(Strongly-Typed)檢查語言,此特色是型別安全(Type Safety)的最佳保證,而C#以受管理碼(Managed Code)方式進行編譯,在CLR運作下對於.NET程式語言之間的相容性、互通性和安全性都可以保證他的成果,當然也支援垃圾記憶體回收(Garbage Collection)功能,讓記憶體獲得充分有效運用。
C#適合用來開發嵌入式系統,也是適合開發大型複雜的系統。
C#支援指標(Pointer)的使用,但被限定於非安全模式才能運作。
C#與C++相較之下,C#不支援多重繼承(Multiple Inheritance),也沒有模板(Template)。但C#仍可以透過介面來實作多重繼承功能,也可以透過泛型(Generic)來取代模板。
微軟推出C#主要就是要彌補昇陽Java的兩項缺點:跨語言溝通能力、Windows平台的整合能力。這也是C#勝過Java的兩項主要優勢。
C#與Java分析比較表 | C# | Java |
所屬公司 | Microsoft | Sun |
執行環境 | CLR | Java VM |
中介語言 (跨平台方式) |
MSIL | Bytecode |
單一繼承 (Single Inheritance) |
支援 | 支援 |
多重繼承 (Multiple Inheritance) |
不支援 但可透過介面實作 |
不支援 但可透過介面實作 |
平台獨立性 (Platform Independence) |
有 | 有 |
垃圾記憶體回收機制 (Garbage Collection) |
有 | 有 |
指標(Pointer) | 支援,但只能在非安全模式下使用(不健議使用) | 不支援 |
switch語法 | 支援char、string和int變數來切換判斷 | 支援char和int變數來切換判斷 |
enum語法 | 支援 | JDK 5.0以上支援 |
struct語法 | 支援 | 不支援 |
goto語法 | 支援 | 不支援 目前goto為保留字 |
foreach迴圈 | 支援 | 支援 |
常數宣告 | 使用關鍵字const | 使用關鍵字final |
as和is運算符號 | 支援 | 不支援 |
屬性(Property)用法 | 支援 | 不支援 用方法實作屬性 |
運算子多載 (Operator Overloading) |
支援 | 支援 |
委派(Delegate) | 支援 | 不支援 |
泛型(Generics) | 支援 | 支援 |
部分類別 (Partial Classes) |
支援 | 不支援 |
例外處理 (Exception Handling) |
支援 | 支援 |
全站熱搜
留言列表