C# 語言介紹
<time class="date icons" datetime="2016-08-09T16:00:00.000Z" style="font-size: 14px; display: inline-block;">2016/08/10</time>
作者
C#(讀作“See Sharp”)是一種簡單易用的新式編程語言暮屡,不僅面向?qū)ο蟛舫觯€類型安全。 C# 源于 C 語言系列惭等,C珍手、C++、Java 和 JavaScript 程序員很快就可以上手使用辞做。
C# 是一種面向?qū)ο蟮恼Z言琳要。不僅如此,C# 還進一步支持面向組件的編程秤茅。 當代軟件設(shè)計越來越依賴采用自描述的獨立功能包形式的軟件組件稚补。 此類組件的關(guān)鍵特征包括:為編程模型提供屬性、方法和事件框喳;包含提供組件聲明性信息的特性课幕;包含自己的文檔。 C# 提供了語言構(gòu)造來直接支持這些概念五垮,讓 C# 成為一種非常自然的語言乍惊,可用于創(chuàng)建和使用軟件組件。
多項 C# 功能有助于構(gòu)造可靠耐用的應(yīng)用程序:垃圾回收可自動回收無法訪問的未使用對象占用的內(nèi)存拼余;異常處理提供了一種結(jié)構(gòu)化的可擴展方法來執(zhí)行錯誤檢測和恢復(fù)污桦;C# 語言的類型安全設(shè)計禁止讀取未初始化的變量、為范圍之外的數(shù)組編制索引或執(zhí)行未檢查的類型轉(zhuǎn)換匙监。
C# 采用統(tǒng)一的類型系統(tǒng)凡橱。 所有 C# 類型(包括int
和double
等基元類型)均繼承自一個根object
類型。 因此亭姥,所有類型共用一組通用運算稼钩,任何類型的值都可以一致地進行存儲、傳輸和處理达罗。 此外坝撑,C# 還支持用戶定義的引用類型和值類型,從而支持對象動態(tài)分配以及輕量級結(jié)構(gòu)的內(nèi)嵌式存儲粮揉。
為了確保 C# 程序和庫能夠隨著時間的推移以兼容的方式發(fā)展巡李,C# 設(shè)計更強調(diào)版本控制。 許多編程語言很少關(guān)注這個問題扶认,因此侨拦,當引入新版依賴庫時,用這些語言編寫的程序會出現(xiàn)更多不必要的中斷現(xiàn)象辐宾。 由于更強調(diào)版本控制狱从,直接受影響的 C# 設(shè)計方面包括單獨的virtual
和override
修飾符膨蛮、關(guān)于方法重載決策的規(guī)則,以及對顯式接口成員聲明的支持季研。
Hello world
“Hello, World”程序歷來都用于介紹編程語言敞葛。 下面展示了此程序的 C# 代碼:
using System;
class Hello
{
static void Main()
{
Console.WriteLine("Hello, World");
}
}
C# 源文件的文件擴展名通常為.cs
。 假設(shè)“Hello, World”程序存儲在文件hello.cs
中与涡,則可以使用下列命令行編譯此程序:
csc hello.cs
這會生成 hello.exe 可執(zhí)行程序集惹谐。 運行此應(yīng)用程序生成以下輸出:
Hello, World
編譯csc
命令實現(xiàn)的是完整框架,可能并不所有平臺都適用递沪。
“Hello, World”程序始于引用System
命名空間的using
指令豺鼻。 命名空間提供了一種用于組織 C# 程序和庫的分層方法。 命名空間包含類型和其他命名空間款慨。例如,System
命名空間包含許多類型(如程序中引用的Console
類)和其他許多命名空間(如IO
和Collections
)谬莹。 借助引用給定命名空間的using
指令檩奠,可以非限定的方式使用作為相應(yīng)命名空間成員的類型。 由于使用using
指令附帽,因此程序可以使用
Console.WriteLine
作為System.Console.WriteLine
的簡寫埠戳。
“Hello, World”程序聲明的Hello
類只有一個成員,即Main
方法蕉扮。Main
方法是使用靜態(tài)修飾符進行聲明整胃。 實例方法可以使用關(guān)鍵字this
引用特定的封閉對象實例,而靜態(tài)方法則可以在不引用特定對象的情況下運行喳钟。 按照約定屁使,Main
靜態(tài)方法是程序的入口點。
程序的輸出是由System
命名空間中Console
類的WriteLine
方法生成奔则。 此類由標準類庫提供蛮寂。默認情況下,編譯器會自動引用標準類庫易茬。
關(guān)于 C#酬蹋,要介紹的內(nèi)容還有很多。 下面各主題概述了 C# 語言元素抽莱。 通過這些概述范抓,可以了解 C# 語言所有元素的基本信息,并獲得深入了解 C# 語言元素所需的信息:
-
程序結(jié)構(gòu)
- 了解 C# 語言中的關(guān)鍵組織概念:程序食铐、命名空間匕垫、類型、成員和程序集璃岳。
-
類型和變量
- 了解 C# 語言中的值類型年缎、引用類型和變量悔捶。
-
表達式
- 表達式是在操作數(shù)和運算符的基礎(chǔ)之上構(gòu)造而成。 表達式生成的是值单芜。
-
語句
- 語句用于表示程序的操作蜕该。
-
類和對象
-
類是最基本的 C# 類型。
對象是類實例洲鸠。 類是使用成員生成的堂淡,此主題也對此進行了介紹。
-
-
結(jié)構(gòu)
- 與類不同扒腕,結(jié)構(gòu)是屬于值類型的數(shù)據(jù)結(jié)構(gòu)绢淀。
-
陣列
- 數(shù)組是一種數(shù)據(jù)結(jié)構(gòu),其中包含許多通過計算索引訪問的變量瘾腰。
-
接口
- 接口定義了可由類和結(jié)構(gòu)實現(xiàn)的協(xié)定皆的。 接口可以包含方法、屬性蹋盆、事件和索引器费薄。 接口不提供所定義的成員的實現(xiàn)代碼,僅指定必須由實現(xiàn)接口的類或結(jié)構(gòu)提供的成員栖雾。
-
枚舉
- 枚舉類型是包含一組已命名常量的獨特值類型楞抡。
-
委托
- 委托類型表示對具有特定參數(shù)列表和返回類型的方法的引用。 通過委托析藕,可以將方法視為可分配給變量并可作為參數(shù)傳遞的實體召廷。 委托類似于其他一些語言中的函數(shù)指針概念,但與函數(shù)指針不同的是账胧,委托不僅面向?qū)ο缶郝€類型安全。
-
特性
- 使用特性找爱,程序可以指定關(guān)于類型梗顺、成員和其他實體的附加聲明性信息。