第一章 初識C#

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”)是一種簡單易用的新式編程語言,不僅面向對象,還類型安全。 C# 源于 C 語言系列,C、C++、Java 和 JavaScript 程序員很快就可以上手使用。

C# 是一種面向對象的語言。不僅如此,C# 還進一步支持面向組件的編程。 當代軟件設計越來越依賴采用自描述的獨立功能包形式的軟件組件。 此類組件的關鍵特征包括:為編程模型提供屬性、方法和事件;包含提供組件聲明性信息的特性;包含自己的文檔。 C# 提供了語言構造來直接支持這些概念,讓 C# 成為一種非常自然的語言,可用于創(chuàng)建和使用軟件組件。

多項 C# 功能有助于構造可靠耐用的應用程序:垃圾回收可自動回收無法訪問的未使用對象占用的內存;異常處理提供了一種結構化的可擴展方法來執(zhí)行錯誤檢測和恢復;C# 語言的類型安全設計禁止讀取未初始化的變量、為范圍之外的數組編制索引或執(zhí)行未檢查的類型轉換。

C# 采用統一的類型系統。 所有 C# 類型(包括intdouble等基元類型)均繼承自一個根object類型。 因此,所有類型共用一組通用運算,任何類型的值都可以一致地進行存儲、傳輸和處理。 此外,C# 還支持用戶定義的引用類型和值類型,從而支持對象動態(tài)分配以及輕量級結構的內嵌式存儲。

為了確保 C# 程序和庫能夠隨著時間的推移以兼容的方式發(fā)展,C# 設計更強調版本控制。 許多編程語言很少關注這個問題,因此,當引入新版依賴庫時,用這些語言編寫的程序會出現更多不必要的中斷現象。 由于更強調版本控制,直接受影響的 C# 設計方面包括單獨的virtualoverride修飾符、關于方法重載決策的規(guī)則,以及對顯式接口成員聲明的支持。

Hello world

“Hello, World”程序歷來都用于介紹編程語言。 下面展示了此程序的 C# 代碼:

using System;
class Hello
{
    static void Main()
    {
        Console.WriteLine("Hello, World");
    }
}

C# 源文件的文件擴展名通常為.cs。 假設“Hello, World”程序存儲在文件hello.cs

中,則可以使用下列命令行編譯此程序:

csc hello.cs

這會生成 hello.exe 可執(zhí)行程序集。 運行此應用程序生成以下輸出:

Hello, World

編譯csc命令實現的是完整框架,可能并不所有平臺都適用。

“Hello, World”程序始于引用System命名空間的using指令。 命名空間提供了一種用于組織 C# 程序和庫的分層方法。 命名空間包含類型和其他命名空間。例如,System命名空間包含許多類型(如程序中引用的Console類)和其他許多命名空間(如IOCollections)。 借助引用給定命名空間的using指令,可以非限定的方式使用作為相應命名空間成員的類型。 由于使用using指令,因此程序可以使用
Console.WriteLine作為System.Console.WriteLine的簡寫。
“Hello, World”程序聲明的Hello類只有一個成員,即Main方法。Main方法是使用靜態(tài)修飾符進行聲明。 實例方法可以使用關鍵字this引用特定的封閉對象實例,而靜態(tài)方法則可以在不引用特定對象的情況下運行。 按照約定,Main靜態(tài)方法是程序的入口點。

程序的輸出是由System命名空間中Console類的WriteLine方法生成。 此類由標準類庫提供。默認情況下,編譯器會自動引用標準類庫。

關于 C#,要介紹的內容還有很多。 下面各主題概述了 C# 語言元素。 通過這些概述,可以了解 C# 語言所有元素的基本信息,并獲得深入了解 C# 語言元素所需的信息:

  • 程序結構
    • 了解 C# 語言中的關鍵組織概念:程序、命名空間、類型、成員程序集
  • 類型和變量
    • 了解 C# 語言中的值類型、引用類型變量。
  • 表達式
    • 表達式是在操作數運算符的基礎之上構造而成。 表達式生成的是值。
  • 語句
    • 語句用于表示程序的操作。
  • 類和對象
    • 是最基本的 C# 類型。

      對象是類實例。 類是使用成員生成的,此主題也對此進行了介紹。

  • 結構
    • 與類不同,結構是屬于值類型的數據結構。
  • 陣列
    • 數組是一種數據結構,其中包含許多通過計算索引訪問的變量。
  • 接口
    • 接口定義了可由類和結構實現的協定。 接口可以包含方法、屬性、事件和索引器。 接口不提供所定義的成員的實現代碼,僅指定必須由實現接口的類或結構提供的成員。
  • 枚舉
    • 枚舉類型是包含一組已命名常量的獨特值類型。
  • 委托
    • 委托類型表示對具有特定參數列表和返回類型的方法的引用。 通過委托,可以將方法視為可分配給變量并可作為參數傳遞的實體。 委托類似于其他一些語言中的函數指針概念,但與函數指針不同的是,委托不僅面向對象,還類型安全。
  • 特性
    • 使用特性,程序可以指定關于類型、成員和其他實體的附加聲明性信息。

下一頁

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發(fā)現,斷路器,智...
    卡卡羅2017閱讀 136,662評論 19 139
  • 一、使用C語言的7個步驟 1.定義程序的目標 2.設計程序 3.編寫代碼 4.編譯 5.運行程序 6.測試和調試程...
    ChinMint閱讀 171評論 0 0
  • 蘋果官方文檔翻譯 《Objective-C語言編程》(Programming with Objective-C) ...
    fever105閱讀 26,326評論 19 129
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,767評論 18 399
  • 我從一個很荒涼的地方來, 手握中國的歌謠 我聽說,昔日牧羊的少年也從那里來,他拋家棄子 遠方的鄉(xiāng)村成了另一個故鄉(xiāng) ...
    韓思河閱讀 387評論 0 2

友情鏈接更多精彩內容