- C#編程入門指南(上下冊)
- 明日科技
- 8字
- 2020-05-22 18:08:38
第一篇 基礎知識篇
第1章 初識Visual Studio
本章概覽
軟件在人們的日常生活中隨處可見,比如,大家使用的Windows操作系統、智能手機中的各種應用等都是軟件。那么,這些軟件是如何生成的呢?我們能不能開發自己的軟件呢?答案是可以的。本章將帶領大家了解C#(讀作C Sharp)及其使用的開發環境Visual Studio 2017。C#是微軟公司推出的一種語法簡潔、類型安全的面向對象的編程語言,使用它可以開發各種軟件,而Visual Studio 2017則是使用C#開發軟件最好的工具。
知識框架

1.1 了解軟件

隨著計算機的普及,計算機中安裝的軟件在人們的日常生活和工作中的作用也越來越重要。例如,大家在聊天時經常用的QQ軟件(見圖1.1);在工作過程中使用的Office辦公軟件(見圖1.2);在處理照片時使用的美圖秀秀軟件(見圖1.3);在觀看視頻時使用的優酷視頻播放軟件(見圖1.4)等。

圖1.1 QQ軟件

圖1.2 Office辦公軟件之Excel

圖1.3 美圖秀秀軟件

圖1.4 優酷視頻播放軟件
以上軟件都是我們經常用到的一些軟件。那么,什么是軟件呢?
軟件其實是一種計算機程序,而計算機程序是指為了得到結果由計算機等具有信息處理能力的硬件裝置執行的代碼化指令集合。
計算機程序告訴計算機如何完成一個具體的任務。由于現在的計算機還不能理解人類的自然語言,所以不能用自然語言編寫計算機程序,這就需要借助計算機語言(程序設計語言,它是一種人和計算機交換信息的語言)指揮計算機進行工作。
綜上所述,一個軟件的生成過程為:程序員將由計算機語言組成的代碼輸入計算機,計算機對代碼進行解釋編譯,最后由計算機生成軟件,如圖1.5所示。

圖1.5 軟件的生成過程
1.2 軟件開發相關概念

計算機程序涉及的概念都比較抽象、專業,經常有初學編程的人對專業性的名詞不明所以。本節將對常見的與軟件開發相關的概念進行介紹。
1.算法
算法是指對計算機工作步驟和方法的描述。算法的每個步驟都是有著嚴格規定的,這些步驟能夠被計算機識別并正確執行,并且每個步驟都能夠被計算機理解為一個或一組唯一的動作,而不使計算機產生歧義。算法必須有開始和結束,并且必須保證算法規定的每個步驟最終都能夠被完成。
下面通過一個例子來說明算法。例如,要交換變量a與變量b的值,計算機本身不能夠直接執行這個操作,交換兩個變量值的通用方法是借用第三方變量將其作為臨時變量。具體算法描述如下。
(1)將變量a的內容賦值給臨時變量c。
(2)將變量b的內容賦值給變量a。
(3)將臨時變量c存放的內容賦值給變量b。
最終算法可以寫成:

綜上所述,算法實際上是用自然語言描述的一個計算機程序,編寫計算機程序也就是把用某種方式描述的算法通過計算機語言重新描述。
2.數據結構
數據結構是一種計算機進行存儲和組織數據的方式。數據很好理解,比如我們去買東西,共花了50元,50就是一個準確的數據。在計算機中,數據有整數、實數、字符串、圖像和聲音等多種類型,而數據結構就是指各種類型數據之間的相互關系。常見的數據結構有數組、棧、隊列、鏈表、樹、圖等,如圖1.6所示為一個樹結構。

圖1.6 一個樹結構
3.IDE
IDE是Integrated Development Environment的縮寫,表示集成開發環境,它是一種用于提供程序開發環境的應用程序,一般包括代碼編輯器、編譯器、調試工具和圖形化用戶界面工具等。例如,用于開發C#程序的Visual Studio(見圖1.7)、用于開發Java程序的Eclipse(見圖1.8)等都是集成開發環境。

圖1.7 Visual Studio集成開發環境

圖1.8 Eclipse集成開發環境
4.SDK
SDK是Software Development Kit的縮寫,中文釋義為軟件開發工具包,它是一個覆蓋面很廣的名詞,可以這么說:輔助開發某一類軟件的相關文檔、實例和工具的集合都可以稱為SDK。例如,在使用C#進行開發之前,需要安裝由微軟公司推出的.NET SDK(.NET軟件開發工具包)。
5.編譯
編譯是指把計算機語言變成計算機可以識別的二進制語言。由于計算機只識別0和1,所以編譯程序就是把使用計算機語言編寫的程序編譯成計算機可以識別的二進制語言程序的過程。
1.3 C#入門
C#是一種面向對象的編程語言,主要用于開發運行在.NET平臺上的應用程序。C#的語言體系都構建在.NET框架上。由TIOBE編程語言排行榜(見圖1.9)可以看出,C#居于主流編程語言行列,這在一定程度上也說明了C#被越來越多的人所認可和使用。本節將詳細介紹C#,以及C#與.NET的關系。

圖1.9 TIOBE編程語言排行榜
1.3.1 C#的發展

C#是微軟發布的一種編程語言,主要由Anders Hejlsberg(Delphi和Turbo Pascal語言的設計者)主持開發,它主要是微軟公司為配合.NET戰略推出的一種編程語言。
輕松一刻:在Java出現之后,Anders Hejlsberg在Borland公司一直郁郁不得志。這時,比爾·蓋茨慧眼識才,三顧茅廬,把Anders Hejlsberg請到了微軟。最開始微軟許以重金,但Anders Hejlsberg不為所動,在清楚Anders Hejlsberg的想法后,比爾·蓋茨答應給他一個寬松的環境——領導VJ++(Visual J++)小組,并提供高額的薪水和紅利獎金。但好景不長,Sun公司認為微軟破壞了Java的跨平臺性,很快微軟就會利用VJ++將Java開發人員拉攏到它的周圍,而它的VJ++及WFC的很多特性明顯是為Windows平臺設計的。這樣,Sun公司中止了對微軟的Java授權,而這促使微軟選擇Anders Hejlsberg擔任C#的首席設計師,從而開發并設計了C#。
由于C#本身是為配合.NET戰略推出的,因此其發展變化一直是與.NET的發展相輔相成的。C#版本發展歷程如圖1.10所示。

圖1.10 C#版本發展歷程
說明:由于C#是與.NET相輔相成的,因此,圖1.10中的C#版本的變化也體現了.NET的版本發展史,.NET的相關介紹將在1.3.3節進行;另外,微軟曾在2006年發布過.NET 3.0版本,但該版本并沒有對應的C#版本推出,使用的還是2.0版本的C#,所以在圖1.10中并沒有體現。
1.3.2 C#的特點

C#的主要特點如下。
·語法簡潔。C#不允許直接操作內存,去掉了指針操作。
·徹底地面向對象設計。C#具有面向對象語言應有的一切特性(封裝、繼承和多態等)。
·與Web緊密結合。C#支持絕大多數的Web標準,如HTML、XML、SOAP等。
·強大的安全性機制。C#可以消除軟件開發中常見的錯誤(如語法錯誤),.NET提供的垃圾回收器能夠幫助開發者有效地管理內存資源。
·兼容性。因為C#遵循.NET的公共語言規范(CLS),所以能夠保證與其他語言開發的組件兼容。
·完善的錯誤和異常處理機制。C#提供了完善的錯誤和異常處理機制,使程序在交付應用時能夠更加完善。
1.3.3 .NET Framework的介紹

.NET Framework又稱為.NET框架,是微軟推出的完全面向對象的軟件開發與運行平臺,有兩個主要組件:公共語言運行時(Common Language Runtime,CLR)和類庫,如圖1.11所示。

圖1.11 .NET Framework的組成
下面分別對.NET Framework的兩個主要組成部分進行介紹。
·公共語言運行時。公共語言運行時負責管理和執行由.NET編譯器編譯產生的中間語言代碼,.NET程序執行原理如圖1.12所示。公共語言運行時包含兩部分內容,分別為CLS和CTS。其中,CLS表示公共語言規范,它是許多應用程序所需要的一套基本語言功能;而CTS表示通用類型系統,它定義了可以在中間語言中使用的預定義數據類型,所有面向.NET Framework的語言最終都可以生成基于這些類型的編譯代碼。

圖1.12 .NET程序執行原理
說明:中間語言(IL或MSIL,Microsoft Intermediate Language)是使用C#或VB.NET編寫的軟件。只有在軟件運行時,.NET編譯器才將中間代碼編譯成計算機可以直接讀取的數據。
·類庫。類庫中有很多編譯好的類,可以直接使用。例如,在進行多線程操作時,可以直接使用類庫中的Thread類;在進行文件操作時,可以直接使用類庫中的IO類等。類庫相當于一個倉庫,這個倉庫裝滿了各種工具,可以供開發人員直接使用。
1.3.4 C#與.NET Framework

.NET Framework是微軟推出的一個開發平臺,而C#是專門為與微軟的.NET Framework結合使用而設計的一種編程語言。在.NET Framework平臺上進行開發時,可以使用多種開發語言,如C#、VB.NET、VC++.NET、F#等,而C#只是其中的一種。
說明:運行使用C#開發的程序時,必須安裝.NET Framework。.NET Framework可以隨Visual Studio 2017一起安裝,也可以在相關網站下載單獨的安裝文件進行安裝。
1.3.5 C#的應用領域

C#幾乎可用于所有領域,如便攜式計算機、手機或網站等,其主要應用領域如下。
·游戲軟件的開發。
·桌面應用系統的開發。
·智能手機程序的開發。
·多媒體系統的開發。
·網絡系統的開發。
·RIA應用程序的開發。
·操作系統平臺的開發。
·Web應用的開發。
例如,視頻播放軟件PPTV桌面版(見圖1.13)、中國工商銀行官方網站(見圖1.14)、國內分類信息網58同城官方網站(見圖1.15)、攜程旅行網官方網站(見圖1.16)等項目都是使用C#編寫的。

圖1.13 PPTV播放器

圖1.14 中國工商銀行官方網站

圖1.15 58同城官方網站

圖1.16 攜程旅行網官方網站
很多知名公司都將C#作為其項目開發的主要語言,比如,中國移動、明日科技、百度、微軟、優酷等,如圖1.17所示。

圖1.17 使用C#的知名公司
1.4 Visual Studio 2017的安裝與卸載
Visual Studio 2017是微軟為了配合.NET戰略推出的IDE,同時也是目前開發C#程序的工具,本節對Visual Studio 2017的安裝與卸載進行詳細講解。
1.4.1 安裝Visual Studio 2017的必備條件

在安裝Visual Studio 2017之前,首先要了解安裝Visual Studio 2017的必備條件,檢查計算機的軟件和硬件配置是否滿足Visual Studio 2017的安裝要求,具體要求如表1.1所示。
表1.1 安裝Visual Studio 2017的必備條件

1.4.2 安裝Visual Studio 2017

Visual Studio 2017是微軟為了配合.NET戰略推出的IDE,也是開發C#程序的工具。本小節以社區版的Visual Studio 2017安裝為例講解其具體的安裝步驟。
說明:社區版的Visual Studio 2017是完全免費的。
安裝社區版的Visual Studio 2017的步驟如下。
步驟1,社區版的Visual Studio 2017安裝文件是可執行文件,其命名格式為“vs_community__編譯版本號.exe”;本書中下載的安裝文件名為vs_community__ 1978667224.1494576159.exe,雙擊該文件開始安裝。
說明:在安裝Visual Studio 2017時,計算機必須安裝有.NET Framework 4.6框架。如果沒有安裝,請先到微軟官方網站下載并安裝。
步驟2,程序跳轉到Visual Studio 2017安裝界面,如圖1.18所示,在該界面單擊“繼續”按鈕。

圖1.18 Visual Studio 2017安裝界面(1)
步驟3,程序加載完成后,自動跳轉到安裝選擇項界面,如圖1.19所示,在該界面主要將“通用Windows平臺開發”、“.NET桌面開發”和“ASP.NET和Web開發”這3個復選框選中,對于其他的復選框,讀者可以根據自己的開發需要確定是否選擇安裝;選擇完要安裝的功能后,在下面“位置”處選擇要安裝的路徑,這里不建議安裝在系統磁盤中,可以選擇一個其他磁盤進行安裝,比如,將其安裝到D盤中。設置完成后,單擊“安裝”按鈕。

圖1.19 Visual Studio 2017安裝界面(2)
注意:在安裝Visual Studio 2017時,一定要確保計算機處于聯網狀態,否則無法正常安裝。
步驟4,跳轉到安裝進度界面,如圖1.20所示,該界面顯示當前的安裝進度。

圖1.20 Visual Studio 2017安裝界面(3)
步驟5,安裝完成后,自動進入安裝完成界面,如圖1.21所示,在該界面中,可以直接單擊“啟動”按鈕,啟動新安裝的Visual Studio 2017,也可以在系統的開始菜單中,單擊“Visual Studio 2017”選項啟動該開發環境。

圖1.21 Visual Studio 2017安裝界面(4)
說明:在安裝完成界面可能會出現一條“Android SDK”警告信息,這條警告信息不影響Visual Studio 2017的正常使用,忽略即可。
如果是第一次啟動Visual Studio 2017,會出現如圖1.22所示提示框,直接單擊“以后再說”,進入Visual Studio 2017主界面。Visual Studio 2017主界面如圖1.23所示。

圖1.22 啟動Visual Studio 2017

圖1.23 Visual Studio 2017主界面
1.4.3 卸載Visual Studio 2017

如果要卸載Visual Studio 2017,可以按以下步驟進行。
步驟1,在Windows 7操作系統中,依次打開“控制面板”→“程序”→“程序和功能”,在打開的窗口中選中“Microsoft Visual Studio 2017”,如圖1.24所示。

圖1.24 添加或刪除程序界面
步驟2,單擊“卸載”按鈕,進入Visual Studio 2017的卸載界面,如圖1.25所示,單擊“Uninstall”按鈕即可卸載Visual Studio 2017。

圖1.25 Visual Studio 2017的卸載界面
1.5 熟悉Visual Studio 2017
本節對Visual Studio 2017中的菜單欄、工具欄、解決方案資源管理器、“工具箱”窗口、“屬性”窗口和“錯誤列表”窗口等進行介紹。
1.5.1 創建項目

初期學習C#語法和面向對象編程主要在Windows控制臺應用程序環境下完成,下面將按步驟介紹控制臺應用程序的創建過程。
創建控制臺應用程序的步驟如下。
步驟1,依次選擇“開始”→“所有程序”→“Visual Studio 2017”,進入Visual Studio 2017起始頁,如圖1.26所示。

圖1.26 Visual Studio 2017起始頁
步驟3,啟動Visual Studio 2017之后,可以通過兩種方法創建項目:一種是在菜單欄中依次選擇“文件”→“新建”→“項目”,如圖1.27所示;另一種是在Visual Studio 2017起始頁選擇“新建項目”模塊中的相應命令,如圖1.28所示。

圖1.27 在菜單欄中依次選擇“文件”→“新建”→“項目”

圖1.28 選擇“新建項目”模塊中的相應命令
使用其中一種方法創建項目,彈出“新建項目”對話框,如圖1.29所示。

圖1.29 “新建項目”對話框
說明:在圖1.29中選擇“Windows窗體應用(.NET Framework)”即可創建Windows窗體應用程序。
步驟4,選擇要使用的.NET框架和“控制臺應用(.NET Framework)”后,用戶可對要創建的控制臺應用程序進行命名、選擇存放位置、是否創建解決方案目錄等的設定(在命名時可以使用用戶自定義的名稱,也可以使用默認名ConsoleApp1;用戶可以單擊“瀏覽”按鈕設置項目存放的位置;需要注意的是,解決方案名稱與項目名稱一定要一致),然后單擊“確定”按鈕,完成控制臺應用程序的創建。
1.5.2 菜單欄

菜單欄顯示了所有可用的Visual Studio 2017命令,除“文件”“編輯”“視圖”“窗口”“幫助”菜單,還提供編程專用的功能菜單,如“項目”“生成”“調試”“工具”“測試”等菜單,如圖1.30所示。
每個菜單項中都包含若干個菜單命令,用于執行不同的操作。例如,“調試”菜單包括調試程序的各種命令,如“開始調試”“開始執行”“新建斷點”等命令,如圖1.31所示。

圖1.30 Visual Studio 2017菜單欄

圖1.31 “調試”菜單
1.5.3 工具欄

為了操作的方便和快捷,菜單項中常用的命令按功能分組分別放在相應的工具欄中。通過工具欄可以快速訪問常用菜單命令。常用的工具欄有標準工具欄和調試工具欄,下面分別對其進行介紹。
(1)標準工具欄包括大多數常用的命令按鈕,如“新建項目”“添加新項”“打開文件”“保存”“全部保存”等。Visual Studio 2017標準工具欄如圖1.32所示。

圖1.32 Visual Studio 2017標準工具欄
(2)Visual Studio 2017調試工具欄包括對應用程序進行調試的快捷按鈕,如圖1.33所示。

圖1.33 Visual Studio 2017調試工具欄
說明:在調試程序或運行程序的過程中,通常可用以下4種快捷鍵來操作。
●按下〈F5〉快捷鍵實現調試運行程序;
●按下〈Ctrl+F5〉快捷鍵實現不調試運行程序;
●按下〈F11〉快捷鍵實現逐語句調試程序;
●按下〈F10〉快捷鍵實現逐過程調試程序。
1.5.4 解決方案資源管理器

解決方案資源管理器(見圖1.34)提供項目及文件的視圖,并且提供對項目和文件相關命令的便捷訪問。與此窗口關聯的工具欄提供了適用于列表中突出顯示項的常用命令。若要訪問解決方案資源管理器,可以通過依次選擇“視圖”→“解決方案資源管理器”打開。

圖1.34 解決方案資源管理器
1.5.5 “工具箱”窗口

工具箱是Visual Studio 2017的重要工具,每一個開發人員都必須對這個工具非常熟悉。工具箱提供了進行C#程序開發所必需的控件。通過使用工具箱,開發人員可以方便地進行可視化的窗體設計,簡化程序設計工作,提高工作效率。根據控件功能的不同,可以將工具箱劃分為10個欄目,如圖1.35所示。
說明:“工具箱”窗口在Windows窗體應用程序或ASP.NET網站應用程序中才會顯示,在控制臺應用程序中沒有“工具箱”窗口,圖1.35中顯示的“工具箱”是Windows窗體應用程序中的“工具箱”窗口。
單擊某個欄目,則會顯示該欄目下的所有控件,如圖1.36所示。當需要某個控件時,可以通過雙擊所需要的控件直接將控件加載到Windows窗體中,也可以先單擊選擇需要的控件,再將其拖到Windows窗體中。

圖1.35 “工具箱”窗口

圖1.36 展開后的“工具箱”窗口
1.5.6 “屬性”窗口

“屬性”窗口是Visual Studio 2017中的另一個重要工具,該窗口為C#程序的開發提供了簡單的屬性修改方式。Windows窗體中各個控件的屬性都可以在“屬性”窗口進行設置。“屬性”窗口不僅提供了屬性的設置及修改功能,還提供了事件的管理功能。“屬性”窗口可以管理控件的事件,以便在編程時對事件進行處理。
另外,“屬性”窗口采用了兩種方式管理屬性和方法,分別為按分類方式和按字母順序方式,讀者可以根據自己的習慣采用不同的方式。在“屬性”窗口下方還有簡單的幫助,方便開發人員對控件的屬性進行操作。“屬性”窗口的左側是屬性名稱,右側是屬性值。“屬性”窗口如圖1.37所示。

圖1.37 “屬性”窗口
1.5.7 “錯誤列表”窗口

“錯誤列表”窗口對代碼中的錯誤可以進行即時提示并提供可能的解決方法。例如,某句代碼結束處沒有分號,“錯誤列表”窗口中會顯示如圖1.38所示的錯誤。“錯誤列表”窗口就像一個錯誤提示器,它可以將程序中的錯誤代碼及時地顯示給開發人員,開發人員可以通過提示信息找到相應的錯誤代碼。

圖1.38 “錯誤列表”窗口
說明:雙擊錯誤列表中的某項,Visual Studio 2017會自動定位到發生錯誤的代碼。
1.6 小結
本章首先對軟件及軟件開發的相關概念進行了簡單介紹,然后對C#的發展歷史、C#與.NET Framework的關系及C#的應用領域進行了介紹,最后重點講解了Visual Studio 2017的安裝及使用。在學習本章時,應該重點掌握Visual Studio 2017的安裝過程,以及如何使用Visual Studio 2017。
- Java 開發從入門到精通(第2版)
- 圖解Java數據結構與算法(微課視頻版)
- Software Testing using Visual Studio 2012
- C語言從入門到精通(第4版)
- Learning Three.js:The JavaScript 3D Library for WebGL
- C語言程序設計教程
- Spring快速入門
- 常用工具軟件立體化教程(微課版)
- Unity 2018 Shaders and Effects Cookbook
- 小程序,巧應用:微信小程序開發實戰(第2版)
- Java Web開發實例大全(基礎卷) (軟件工程師開發大系)
- 官方 Scratch 3.0 編程趣味卡:讓孩子們愛上編程(全彩)
- Java多線程并發體系實戰(微課視頻版)
- PHP Microservices
- Learning Shiny