本書(shū)全面介紹C#編程知識(shí), 主要內(nèi)容包括: C#的開(kāi)發(fā)環(huán)境和基本語(yǔ)法、流程控件語(yǔ)句和常用數(shù)組、關(guān)于類(lèi)、枚舉、結(jié)構(gòu)和接口的使用、如何處理字符串和日期時(shí)間、如何使用集合和泛型、如何使用正則表達(dá)式操作數(shù)據(jù)、如何使用窗體控件構(gòu)建MDI應(yīng)用程序和窗體應(yīng)用程序以及文件和目錄管理、對(duì)話框管理、使用ADO.NET技術(shù)訪問(wèn)數(shù)據(jù)庫(kù)等等。本書(shū)最后還向讀者提供了完整的開(kāi)發(fā)項(xiàng)目, 加深讀者對(duì)C#的理解。
知識(shí)點(diǎn)全
本書(shū)緊密?chē)@C#語(yǔ)言展開(kāi)講解,具有很強(qiáng)的邏輯性和系統(tǒng)性。
實(shí)例豐富
書(shū)中各實(shí)例均經(jīng)過(guò)作者精心設(shè)計(jì)和挑選,它們都是根據(jù)作者在實(shí)際開(kāi)發(fā)中的經(jīng)驗(yàn)總結(jié)而來(lái)的,涵蓋了在實(shí)際開(kāi)發(fā)中所遇到的各種問(wèn)題。
應(yīng)用廣泛
對(duì)于精選案例,給出了詳細(xì)步驟,結(jié)構(gòu)清晰簡(jiǎn)明,分析深入淺出,而且有些程序能夠直接在項(xiàng)目中使用,避免讀者進(jìn)行重復(fù)開(kāi)發(fā)。
基于理論,注重實(shí)踐
在講述過(guò)程中,不只是介紹理論知識(shí),而且在合適位置安排綜合應(yīng)用實(shí)例,或者小型應(yīng)用程序,將理論知識(shí)應(yīng)用到實(shí)踐中,來(lái)加強(qiáng)讀者的實(shí)際應(yīng)用能力,鞏固所學(xué)的相關(guān)知識(shí)。
C# 是面向?qū)ο蟮木幊陶Z(yǔ)言,是微軟公司發(fā)布的一種面向?qū)ο蟮摹⑦\(yùn)行于.NET Framework之上的高級(jí)程序設(shè)計(jì)語(yǔ)言。全球每天有超過(guò)百萬(wàn)的開(kāi)發(fā)者正在用C# 進(jìn)行著各式各樣程序的開(kāi)發(fā),它是目前使用最廣泛的計(jì)算機(jī)語(yǔ)言之一。C# 憑借其易學(xué)易用、功能強(qiáng)大等特點(diǎn),可以進(jìn)行Windows 窗體應(yīng)用程序、MDI 窗體應(yīng)用程序、WPF 應(yīng)用程序、.NET 應(yīng)用程序等的開(kāi)發(fā),并且在信息技術(shù)、科學(xué)研究等各個(gè)領(lǐng)域都得到了廣泛的應(yīng)用。
為了使廣大學(xué)生和工作人員能真正掌握C# 語(yǔ)言程序設(shè)計(jì)技術(shù),領(lǐng)悟C# 程序設(shè)計(jì)的快樂(lè)和享受C# 語(yǔ)言帶來(lái)的在提高生產(chǎn)效率方面的好處,作者根據(jù)多年的程序開(kāi)發(fā)和C# 授課經(jīng)驗(yàn),精心編寫(xiě)了本書(shū)。本書(shū)并不是單純從知識(shí)角度來(lái)講解C# 程序設(shè)計(jì),而是從實(shí)踐和解決開(kāi)發(fā)問(wèn)題的角度來(lái)介紹C# 語(yǔ)言,在編寫(xiě)的過(guò)程中,注重把C# 語(yǔ)言中的重點(diǎn)、難點(diǎn)、要點(diǎn)和編程中常見(jiàn)的問(wèn)題融合在一起進(jìn)行講解。
本書(shū)編寫(xiě)思路清晰、內(nèi)容翔實(shí)、案例實(shí)用,詳細(xì)介紹使用C# 語(yǔ)言進(jìn)行程序設(shè)計(jì)的方方面面。
本書(shū)可作為計(jì)算機(jī)軟件以及其他計(jì)算機(jī)相關(guān)專(zhuān)業(yè)的教材,也可以作為C# 編程人員的參考書(shū)。
本書(shū)內(nèi)容
全書(shū)共分19 章,主要內(nèi)容如下。
第1 章 C# 入門(mén)概述。主要介紹C# 語(yǔ)言的基礎(chǔ)知識(shí),包括C# 的概念、發(fā)展歷史、優(yōu)勢(shì)、開(kāi)發(fā)環(huán)境、開(kāi)發(fā)工具以及C# 程序結(jié)構(gòu)等內(nèi)容。
第2 章 C# 基礎(chǔ)語(yǔ)法。主要介紹C# 的基礎(chǔ)語(yǔ)法, 包括C# 常用關(guān)鍵字(using、namespace、class)、預(yù)處理指令、語(yǔ)言注釋、Main() 方法等相關(guān)內(nèi)容。
第3 章 變量、常量與數(shù)據(jù)類(lèi)型。從C# 中的變量開(kāi)始介紹,然后介紹常量和數(shù)據(jù)類(lèi)型的有關(guān)知識(shí),最后介紹數(shù)據(jù)類(lèi)型轉(zhuǎn)換的兩種方式,即顯式轉(zhuǎn)換和隱式轉(zhuǎn)換。
第4 章 運(yùn)算符和表達(dá)式。主要介紹C# 中常用的運(yùn)算符和表達(dá)式,內(nèi)容包括C# 的基礎(chǔ)運(yùn)算符、高級(jí)運(yùn)算符、運(yùn)算符的優(yōu)先級(jí)別以及表達(dá)式等。
第5 章 流程控制語(yǔ)句。首先介紹C# 中的語(yǔ)句類(lèi)型和空語(yǔ)句,重點(diǎn)介紹C# 條件語(yǔ)句和循環(huán)語(yǔ)句的使用,包括if、switch、for、while、do while 和foreach 等。最后還將介紹C# 中的跳轉(zhuǎn)語(yǔ)句,如return、break、continue 以及goto。
第6 章 字符串與正則表達(dá)式。主要介紹C# 中的字符串處理與正則表達(dá)式的使用,包括String 類(lèi)操作字符串、StringBuilder 類(lèi)操作字符串和正則表達(dá)式操作字符串等內(nèi)容。
第7 章 數(shù)值處理和日期處理。主要介紹Math 類(lèi)、Random 類(lèi)、DateTime 結(jié)構(gòu)和TimeSpan 結(jié)構(gòu)等內(nèi)容。
第8 章 數(shù)組。將詳細(xì)介紹C# 中一維數(shù)組、二維數(shù)組和多維數(shù)組的創(chuàng)建、初始化和相關(guān)處理類(lèi)如何處理數(shù)組,例如添加數(shù)組元素、移除數(shù)組元素、反轉(zhuǎn)數(shù)組元素以及數(shù)組排序等內(nèi)容。
第9 章 內(nèi)置集合和自定義集合。主要介紹C# 中的內(nèi)置集合類(lèi),以及如何自定義集合類(lèi)。內(nèi)置集合類(lèi)包含Hashtable、SortedList、Stack、Queue 和BitArray 等。
第10 章 類(lèi)和對(duì)象。從面向?qū)ο缶幊痰母拍钜鲱?lèi)和對(duì)象的概念,詳細(xì)介紹類(lèi)和對(duì)象的有關(guān)知識(shí)。主要內(nèi)容包含類(lèi)的創(chuàng)建和使用、類(lèi)的構(gòu)造函數(shù)、析構(gòu)函數(shù)、類(lèi)可包含的成員、對(duì)象的創(chuàng)建和使用、this 關(guān)鍵字如何使用等。
第11 章 類(lèi)的面向?qū)ο缶幊獭7庋b、繼承、多態(tài)是面向?qū)ο缶幊痰娜齻(gè)特性,也是類(lèi)的三大特性。該章除了介紹類(lèi)的編程特性外,還針對(duì)抽象類(lèi)、密封類(lèi)、類(lèi)的常用關(guān)鍵字進(jìn)行介紹。
第12 章 枚舉、結(jié)構(gòu)和接口。介紹C# 中經(jīng)常用到的3 個(gè)知識(shí)點(diǎn),即枚舉、結(jié)構(gòu)和接口,包括它們的概念、定義、使用以及與類(lèi)的區(qū)別等知識(shí)點(diǎn)。
第13 章 C# 語(yǔ)言高級(jí)編程。主要介紹開(kāi)發(fā)程序時(shí)一些常用的異常及如何有效地使用異常處理機(jī)制。另外,還將會(huì)針對(duì)程序開(kāi)發(fā)中常見(jiàn)的泛型、委托和事件進(jìn)行介紹。
第14 章 Windows 窗體基礎(chǔ)控件。從Windows 窗體應(yīng)用程序開(kāi)始介紹,詳細(xì)介紹窗體程序中常用的窗體控件,例如文本標(biāo)簽控件、文本輸入框控件、按鈕控件、列表控件、選擇控件、日期和時(shí)間控件等。
第15 章 構(gòu)建MDI 窗體應(yīng)用程序。詳細(xì)介紹如何構(gòu)建MDI 窗體應(yīng)用程序,包括程序創(chuàng)建、窗體對(duì)話框以及常用的MDI 窗體控件等多項(xiàng)內(nèi)容。
第16 章 ADO.NET 技術(shù)訪問(wèn)數(shù)據(jù)庫(kù)。詳細(xì)介紹ADO.NET 技術(shù)常用的數(shù)據(jù)庫(kù)訪問(wèn)對(duì)象,例如SqlConnection、SqlCommand、SqlDataReader、SqlDataAdapter 以及DataSet 對(duì)象等。
第17 章 Windows 表格數(shù)據(jù)控件。針對(duì)DataGridView 控件和TreeView 控件進(jìn)行詳細(xì)介紹。主要內(nèi)容包括控件的優(yōu)點(diǎn)、常用屬性、方法、事件以及實(shí)際開(kāi)發(fā)中需要用到的操作等。
第18 章 數(shù)據(jù)流和文件的輸入/ 輸出。首先介紹數(shù)據(jù)流,接著介紹System.IO 命名空間,然后介紹如何針對(duì)文件和文件夾進(jìn)行操作。
第19 章 三層架構(gòu)實(shí)現(xiàn)汽車(chē)租賃系統(tǒng)。利用Visual Studio 2015 開(kāi)發(fā)工具和SQL Server 2012 數(shù)據(jù)庫(kù)開(kāi)發(fā)基于三層架構(gòu)的簡(jiǎn)單汽車(chē)租賃系統(tǒng)。汽車(chē)租賃系統(tǒng)包含用戶登錄、用戶注冊(cè)、發(fā)布汽車(chē)出租信息、完成汽車(chē)租賃、還車(chē)、取消發(fā)布信息、信息打印以及退出系統(tǒng)等多個(gè)功能模塊。
本書(shū)特色
本書(shū)中的大量?jī)?nèi)容來(lái)自真實(shí)的程序范例,使讀者更容易掌握C# 程序的設(shè)計(jì)和開(kāi)發(fā)。本書(shū)難度適中,內(nèi)容由淺入深,實(shí)用性強(qiáng),覆蓋面廣,條理清晰。
知識(shí)點(diǎn)全
本書(shū)緊密?chē)@C# 語(yǔ)言展開(kāi)講解,具有很強(qiáng)的邏輯性和系統(tǒng)性。
實(shí)例豐富
書(shū)中各實(shí)例均經(jīng)過(guò)作者精心設(shè)計(jì)和挑選,它們都是根據(jù)作者在實(shí)際開(kāi)發(fā)中的經(jīng)驗(yàn)總結(jié)而來(lái)的,涵蓋了在實(shí)際開(kāi)發(fā)中所遇到的各種問(wèn)題。
應(yīng)用廣泛
對(duì)于精選案例,給出了詳細(xì)步驟,結(jié)構(gòu)清晰簡(jiǎn)明,分析深入淺出,而且有些程序能夠直接在項(xiàng)目中使用,避免讀者進(jìn)行二次開(kāi)發(fā)。
基于理論,注重實(shí)踐
在講述過(guò)程中,不單純介紹理論知識(shí),而且在合適位置安排有綜合應(yīng)用實(shí)例或者小型應(yīng)用程序,將理論應(yīng)用到實(shí)踐當(dāng)中,以加強(qiáng)讀者的實(shí)際應(yīng)用能力,鞏固開(kāi)發(fā)基礎(chǔ)知識(shí)。
貼心的提示
為了便于讀者閱讀,書(shū)中還穿插了一些技巧、提示等小貼士,體例約定如下。
提示:通常是一些貼心的提醒,讓讀者加深印象,或提供建議及解決問(wèn)題的方法。
注意:提出學(xué)習(xí)過(guò)程中需要特別注意的一些知識(shí)點(diǎn)和內(nèi)容,或者相關(guān)信息。
技巧:通過(guò)簡(jiǎn)短的文字,指出知識(shí)點(diǎn)在應(yīng)用時(shí)的一些小竅門(mén)。
讀者對(duì)象
本書(shū)適合作為軟件開(kāi)發(fā)入門(mén)者的自學(xué)用書(shū),也適合作為高等院校相關(guān)專(zhuān)業(yè)的教學(xué)參考書(shū),還可供開(kāi)發(fā)人員查閱、參考。本書(shū)尤其適合下列人員使用:
? C# 語(yǔ)言的初學(xué)者以及在校學(xué)生。
? 各大中專(zhuān)院校的在校學(xué)生和相關(guān)授課老師。
? 準(zhǔn)備從事與C# 語(yǔ)言或ASP.NET 技術(shù)相關(guān)工作的人員。
本書(shū)由李鑫、祝惠娟編著,參與本書(shū)編寫(xiě)及設(shè)計(jì)工作的還有鄭志榮、侯艷書(shū)、劉利利、侯政洪、肖進(jìn)、李海燕、侯政云、祝紅濤、崔再喜、賀春雷等,在此表示感謝。在本書(shū)的編寫(xiě)過(guò)程中,我們力求精益求精,但難免存在一些不足之處,敬請(qǐng)廣大讀者批評(píng)指正。
編 者
李鑫,具有多年.Net項(xiàng)目開(kāi)發(fā)經(jīng)驗(yàn),深入掌握.NET框架技術(shù),熟練開(kāi)發(fā)Asp.net與WinForm項(xiàng)目,精通C#、ASP 、C++、VB語(yǔ)言,熟練使用MTS、COM+、Web Service分布式架構(gòu)。
祝惠娟,3年的開(kāi)發(fā)經(jīng)驗(yàn)。曾任某軟件公司的高級(jí)開(kāi)發(fā)工程師,參與軟件后臺(tái)服務(wù)等項(xiàng)目的設(shè)計(jì)與開(kāi)發(fā)。對(duì)C、C++、VB.NET、SQL Server、C#、XML等多種環(huán)境開(kāi)發(fā)和運(yùn)用,有深刻的理解。
第1 章 C# 入門(mén)概述
1.1 C# 語(yǔ)言概述 . 2
1.1.1 什么是C# 語(yǔ)言 ... 2
1.1.2 C# 的發(fā)展歷史 .... 2
1.1.3 C# 的優(yōu)勢(shì)分析 .... 2
1.1.4 如何學(xué)好C# 語(yǔ)言 .... 3
1.2 C# 環(huán)境——.NET 框架 ... 4
1.2.1 什么是.NET 框架 .... 4
1.2.2 .NET 框架的組件 4
1.2.3 .NET 框架的版本 5
1.2.4 .NET 框架的體系結(jié)構(gòu) .. 6
1.3 C# 開(kāi)發(fā)——Visual Studio 2015 7
1.3.1 什么是Visual Studio 7
1.3.2 Visual Studio 的發(fā)展歷程 .. 8
1.3.3 Visual Studio 2015 的新功能 .. 8
1.4 高手帶你做——安裝VS 2015 .... 10
1.5 高手帶你做——?jiǎng)?chuàng)建第一個(gè)
控制臺(tái)程序 14
1.6 認(rèn)識(shí)C# 程序結(jié)構(gòu) 16
1.6.1 C# 程序結(jié)構(gòu)組成 ... 16
1.6.2 創(chuàng)建和執(zhí)行C# 程序 ... 17
1.7 高手帶你做——通過(guò)記事本創(chuàng)建
應(yīng)用程序 .... 17
1.8 高手帶你做——?jiǎng)?chuàng)建Windows
窗體應(yīng)用程序 . 19
1.9 成長(zhǎng)任務(wù) .... 21
第2 章 C# 基礎(chǔ)語(yǔ)法
2.1 認(rèn)識(shí)C# 語(yǔ)法 ... 24
2.2 using 關(guān)鍵字 .... 25
2.2.1 using 指令 25
2.2.2 常見(jiàn)的命名空間 .... 26
2.2.3 using 語(yǔ)句 27
2.2.4 高手帶你做——using 語(yǔ)句的
詳細(xì)使用 .. 28
2.3 namespace 關(guān)鍵字 29
2.3.1 定義命名空間 ... 30
2.3.2 嵌套命名空間 ... 30
2.3.3 高手帶你做——為自定義命名
空間指定別名 .... 31
2.4 class 關(guān)鍵字 32
2.5 Main() 方法 32
2.6 Console 類(lèi) .. 33
2.6.1 輸出內(nèi)容到控制臺(tái) 33
2.6.2 從控制臺(tái)輸入內(nèi)容 34
2.6.3 Console 類(lèi)的其他方法 .... 34
2.7 C# 語(yǔ)言注釋 .... 35
2.7.1 單行注釋 . 35
2.7.2 多行注釋 . 36
2.7.3 文檔注釋 . 36
2.8 C# 關(guān)鍵字 ... 37
2.8.1 保留關(guān)鍵字 .. 37
2.8.2 上下文關(guān)鍵字 ... 38
2.9 C# 預(yù)處理器指令 . 38
2.9.1 C# 預(yù)處理器指令列表 38
2.9.2 #define 指令 .. 39
2.9.3 條件指令 . 40
2.9.4 #region 指令 . 41
2.10 高手帶你做——根據(jù)輸入內(nèi)容
返回結(jié)果 ... 42
2.11 成長(zhǎng)任務(wù)... 44
第3 章 變量、常量與數(shù)據(jù)類(lèi)型
3.1 變量 .. 46
3.1.1 聲明變量 . 46
3.1.2 變量賦值 . 47
3.1.3 變量類(lèi)型 . 47
3.2 常量 .. 50
3.2.1 常量概述 . 50
3.2.2 定義常量 . 51
3.3. 數(shù)據(jù)類(lèi)型 ... 53
3.3.1 數(shù)據(jù)類(lèi)型分類(lèi) ... 53
3.3.2 基本數(shù)據(jù)類(lèi)型 ... 54
3.3.3 枚舉和結(jié)構(gòu)類(lèi)型 .... 57
3.4 數(shù)據(jù)類(lèi)型轉(zhuǎn)換 . 57
3.4.1 隱式轉(zhuǎn)換 . 58
3.4.2 顯式轉(zhuǎn)換 . 60
3.5 高手帶你做——Convert 類(lèi)實(shí)現(xiàn)
類(lèi)型轉(zhuǎn)換 .... 62
3.6 成長(zhǎng)任務(wù) .... 64
第4 章 運(yùn)算符和表達(dá)式
4.1 基礎(chǔ)運(yùn)算符 66
4.1.1 算術(shù)運(yùn)算符 .. 66
4.1.2 關(guān)系運(yùn)算符 .. 67
4.1.3 邏輯運(yùn)算符 .. 68
4.1.4 賦值運(yùn)算符 .. 69
4.1.5 位運(yùn)算符 . 71
4.2 高級(jí)運(yùn)算符 73
4.2.1 自增運(yùn)算符 .. 74
4.2.2 自減運(yùn)算符 .. 74
4.2.3 雜項(xiàng)運(yùn)算符 .. 76
4.3 高手帶你做——認(rèn)識(shí)并使用
三元運(yùn)算符 77
4.4 運(yùn)算符的優(yōu)先級(jí) .. 77
4.5 表達(dá)式 ... 79
4.6 成長(zhǎng)任務(wù) .... 80
第5 章 流程控制語(yǔ)句
5.1 語(yǔ)句概述 .... 82
5.1.1 語(yǔ)句類(lèi)型 . 82
5.1.2 空語(yǔ)句 83
5.2 if 選擇語(yǔ)句 . 83
5.2.1 簡(jiǎn)單if 語(yǔ)句 .. 83
5.2.2 if else 語(yǔ)句 .. 85
5.2.3 if else if else 語(yǔ)句 .. 86
5.2.4 嵌套if 語(yǔ)句 .. 87
5.3 高手帶你做——根據(jù)輸入的年齡
判斷信息 .... 89
5.4 switch 選擇語(yǔ)句 ... 90
5.4.1 switch 語(yǔ)句 ... 90
5.4.2 嵌套switch 語(yǔ)句 .... 92
5.4.3 switch 語(yǔ)句與if 語(yǔ)句的區(qū)別 .... 94
5.5 循環(huán)語(yǔ)句 .... 95
5.5.1 while 語(yǔ)句 .... 95
5.5.2 do while 語(yǔ)句 .... 97
5.5.3 for 語(yǔ)句 .... 99
5.5.4 foreach 語(yǔ)句 .... 102
5.6 高手帶你做——循環(huán)打印點(diǎn)陣圖形.... 104
5.7 跳轉(zhuǎn)語(yǔ)句 .. 106
5.7.1 return 語(yǔ)句 .. 106
5.7.2 break 語(yǔ)句 .. 107
5.7.3 continue 語(yǔ)句 ... 108
5.7.4 goto 語(yǔ)句 .... 109
5.8 成長(zhǎng)任務(wù) .. 111
第6 章 字符串與正則表達(dá)式
6.1 認(rèn)識(shí)String 類(lèi) 114
6.1.1 創(chuàng)建String 對(duì)象 ... 114
6.1.2 null 字符串和空字符串 . 115
6.1.3 String 類(lèi)的屬性 .... 116
6.2 字符串的基本操作 . 116
6.2.1 連接字符串 116
6.2.2 轉(zhuǎn)換大小寫(xiě) 119
6.2.3 去除空格 .... 120
6.2.4 提取字符串 120
6.2.5 分割字符串 121
6.3 字符串的高級(jí)操作 . 122
6.3.1 替換字符串 122
6.3.2 比較字符串 123
6.3.3 定位字符串 124
6.3.4 格式化字符串 . 126
6.4 高手帶你做——驗(yàn)證指定的
文件和郵箱 ... 126
6.5 StringBuilder 類(lèi)操作字符串 .. 128
6.5.1 創(chuàng)建StringBuilder 對(duì)象 . 128
6.5.2 StringBuilder 類(lèi)的屬性 .. 128
6.5.3 追加字符串 130
6.5.4 插入字符串 131
6.5.5 替換字符串 132
6.5.6 刪除字符串 132
6.6 高手帶你做——字符串加密和
解密操作 .. 133
6.7 正則表達(dá)式 ... 136
6.7.1 正則元字符 136
6.7.2 正則限定符 137
6.7.3 正則表達(dá)式Regex 類(lèi) .... 138
6.7.4 高手帶你做——將人民幣
金額轉(zhuǎn)換為大寫(xiě)漢字 142
6.8 成長(zhǎng)任務(wù) .. 143
第7 章 數(shù)值處理和日期處理
7.1 數(shù)值處理——Math 類(lèi) . 146
7.1.1 靜態(tài)常量 .... 146
7.1.2 求最值 ... 146
7.1.3 求絕對(duì)值 .... 146
7.1.4 求整數(shù)值 .... 147
7.1.5 求三角函數(shù) 148
7.1.6 Math 的其他方法 . 149
7.2 偽隨機(jī)數(shù)——Random 類(lèi) . 149
7.2.1 初始化隨機(jī)數(shù)生成器 .... 149
7.2.2 生成隨機(jī)數(shù) 150
7.2.3 高手帶你做——求隨機(jī)數(shù)的
平均值和方差 .. 151
7.3 日期處理——DateTime 結(jié)構(gòu) 153
7.3.1 靜態(tài)字段 .... 153
7.3.2 靜態(tài)屬性 .... 153
7.3.3 實(shí)例屬性 .... 154
7.3.4 靜態(tài)方法 .... 155
7.3.5 實(shí)例方法 .... 156
7.3.6 ToString() 方法格式化日期 159
7.4 日期處理——TimeSpan 結(jié)構(gòu) .... 160
7.4.1 靜態(tài)字段 .... 160
7.4.2 靜態(tài)常量 .... 161
7.4.3 實(shí)例屬性 .... 162
7.4.4 實(shí)例方法 .... 163
7.4.5 高手帶你做——基于TimeSpan
實(shí)現(xiàn)倒計(jì)時(shí)效果 ... 165
7.5 高手帶你做——根據(jù)年月輸出日歷.... 166
7.6 成長(zhǎng)任務(wù) .. 167
第8 章 數(shù)組
8.1 數(shù)組概述 .. 170
8.2 一維數(shù)組 .. 170
8.2.1 聲明數(shù)組 .... 170
8.2.2 分配空間 .... 171
8.2.3 初始化數(shù)組 171
8.2.4 獲取單個(gè)元素 . 172
8.2.5 獲取全部元素 . 173
8.3 二維數(shù)組 .. 174
8.3.1 聲明數(shù)組 .... 174
8.3.2 初始化數(shù)組 175
8.3.3 獲取單個(gè)元素 . 175
8.3.4 獲取全部元素 . 176
8.4 高手帶你做——二維數(shù)組如何
實(shí)現(xiàn)矩陣乘法 .... 177
8.5 多維數(shù)組 .. 179
8.5.1 三維數(shù)組 .... 179
8.5.2 交錯(cuò)數(shù)組 .... 180
8.6 數(shù)組處理類(lèi) ... 181
8.6.1 Array 類(lèi) . 182
8.6.2 ArrayList 類(lèi) 183
8.7 數(shù)組的基礎(chǔ)操作 185
8.7.1 添加元素 .... 185
8.7.2 復(fù)制元素 .... 186
8.7.3 反轉(zhuǎn)元素 .... 188
8.7.4 移除元素 .... 190
8.7.5 清除元素 .... 191
8.8 數(shù)組排序 .. 192
8.8.1 內(nèi)置排序法 192
8.8.2 冒泡排序法 192
8.8.3 快速排序法 194
8.8.4 選擇排序法 195
8.8.5 插入排序算法 . 196
8.9 高手帶你做——商品信息查詢功能.... 197
8.10 成長(zhǎng)任務(wù) 199
第3 章 變量、常量與數(shù)據(jù)類(lèi)型
要想編寫(xiě)規(guī)范、可讀性高的C# 程序,就必須對(duì)C# 有深入透徹的了解。第2 章我們針對(duì)C# 程序結(jié)構(gòu)的語(yǔ)法進(jìn)行了介紹,本章我們學(xué)習(xí)新的內(nèi)容。在編寫(xiě)C# 程序時(shí),如何聲明變量、如何為變量賦值、應(yīng)該聲明哪些類(lèi)型的變量、遇到常量怎么辦等,這些都是編程中經(jīng)常會(huì)遇到的一些問(wèn)題。為了加強(qiáng)開(kāi)發(fā)人員對(duì)于C# 的認(rèn)知,我們?cè)谶@一章詳細(xì)介紹C# 中的變量、常量以及數(shù)據(jù)類(lèi)型。
本章學(xué)習(xí)要點(diǎn)
◎◎ 掌握變量的聲明和賦值
◎◎ 熟悉變量的類(lèi)型和作用域
◎◎ 了解常量的概念和分類(lèi)
◎◎ 掌握靜態(tài)常量和動(dòng)態(tài)常量的定義
◎◎ 熟悉靜態(tài)常量和動(dòng)態(tài)常量的區(qū)別
◎◎ 了解數(shù)據(jù)類(lèi)型的分類(lèi)
◎◎ 掌握常用的基本數(shù)據(jù)類(lèi)型
◎◎ 了解枚舉、結(jié)構(gòu)和引用類(lèi)型
◎◎ 掌握隱式數(shù)據(jù)類(lèi)型轉(zhuǎn)換
◎◎ 掌握顯式數(shù)據(jù)類(lèi)型轉(zhuǎn)換
◎◎ 掌握并學(xué)會(huì)使用Convert類(lèi)的方法
掃一掃,下載本章視頻文件
3.1 變量
常量和變量是C# 程序中最基礎(chǔ)的兩個(gè)元素。變量時(shí)時(shí)刻刻都存在于C# 程序中,而且變量的值在程序運(yùn)行期間是可以被更改的。本節(jié)詳細(xì)介紹C# 中變量的聲明、變量的賦值以及作用域的使用。
3.1.1 聲明變量
對(duì)于開(kāi)發(fā)人員來(lái)說(shuō),變量是用來(lái)描述一條信息的別名,在程序代碼中可以使用一個(gè)或多個(gè)變量。變量中可以存儲(chǔ)各種類(lèi)型的信息,例如用戶登錄信息、文件名稱、文件大小、某本書(shū)的名稱、飛機(jī)票的價(jià)格等。
一個(gè)變量只不過(guò)是一個(gè)程序操作的存儲(chǔ)區(qū)的名字。在C# 中,每個(gè)變量都有一個(gè)特定的類(lèi)型,類(lèi)型決定了變量的內(nèi)存大小和布局。
C# 中,用戶可以通過(guò)指定數(shù)據(jù)類(lèi)型和標(biāo)識(shí)符來(lái)聲明變量。其基本語(yǔ)法如下:
;
或者:
= value;
上述語(yǔ)法代碼涉及3 個(gè)內(nèi)容:data_type、variable_list 和value。其具體說(shuō)明如下。
● data_type 變量類(lèi)型,它必須是一個(gè)有效的C#數(shù)據(jù)類(lèi)型,例如int、string、char、double等,也可以是用戶自定義的數(shù)據(jù)類(lèi)型。
● variable_list 標(biāo)識(shí)符,也叫變量名稱。可以由一個(gè)或多個(gè)用逗號(hào)分隔的標(biāo)識(shí)符組成。
● value 聲明變量時(shí)的賦值。變量標(biāo)識(shí)符在命名時(shí)需要遵循一定的規(guī)則:
● 變量標(biāo)識(shí)符由字母、數(shù)字和下劃線“_”組成,不能包含空格、標(biāo)點(diǎn)符號(hào)、運(yùn)算符等其他符號(hào)。
● 變量標(biāo)識(shí)符必須由字母或下劃線“_”開(kāi)頭,不能以數(shù)字開(kāi)頭。
● 變量標(biāo)識(shí)符不能是C#中的關(guān)鍵字,如using、static、namespace和class等。
● 變量標(biāo)識(shí)符區(qū)分大小寫(xiě),例如name 和Name 是兩個(gè)變量。
為變量命名時(shí)還需要遵守一些變量命名規(guī)范:
● 變量標(biāo)識(shí)符要有意義,盡量用對(duì)應(yīng)的英文命名,使其具有“見(jiàn)名知意”的作用。例如,登錄密碼可以使用password 或mima,避免使用abc、cfa1 等進(jìn)行命名。
● 避免使用單個(gè)字符作為變量名( 在循環(huán)里面定義的變量除外)。
● 當(dāng)使用多個(gè)單詞組成變量名時(shí),應(yīng)該使用駱駝命名法。即第一個(gè)單詞的首字母小寫(xiě),其他單詞的首字母大寫(xiě)。例如用戶名稱可以用userName 表示,機(jī)票價(jià)格可以用airPrice 表示。
【例3-1】
如下代碼分別聲明了string、int、bool 類(lèi)型的變量:
string userName; //string 類(lèi)型的變量,表示用戶名稱
int userAge; //int 類(lèi)型的變量,表示用戶年齡
bool isGirl; //bool類(lèi)型的變量,表示是否為女性
注意
如果多個(gè)變量的類(lèi)型相同,則可以同時(shí)聲明多個(gè)變量,在多個(gè)變量之間,需要通過(guò)逗號(hào)進(jìn)行分隔。
【例3-2】
如下代碼分別聲明string、bool 類(lèi)型的多個(gè)變量:
string userName, userPass;
bool isGirl, isDelete;
在C# 中,變量名有一點(diǎn)是例外的,就是允許為變量名加前綴“@”,所以可以使用“@”加上關(guān)鍵字作為變量的名稱。但是,一般情況下,我們不推薦使用前綴“@”作為變量名的一部分。
3.1.2 變量賦值
初始化變量是指為變量指定一個(gè)明確的初始值。初始化變量有兩種方式:一種是聲明時(shí)直接賦值;一種是先聲明,后賦值。基礎(chǔ)語(yǔ)法如下:
= value; // 聲明時(shí)直接賦值
variable_name = value; //先聲明,后賦值
【例3-3】
如下代碼在聲明時(shí)直接為變量賦值:
string userName = " 陳曉婷", userPass = "xiaoting123";
int age = 18;
double totalPrice = 34.5;
也可以先聲明變量,然后再賦值,例如,上面的代碼等價(jià)于下面的代碼:
string userName, userPass;
int age;
double totalPrice;
userName = " 陳曉婷";
userPass = "xiaoting123";
age = 18;
totalPrice = 34.5;
3.1.3 變量類(lèi)型
C# 中有7 種變量類(lèi)型:靜態(tài)變量、實(shí)例變量、數(shù)組元素、數(shù)值參數(shù)、引用參數(shù)、輸出參數(shù)和局部變量。
class Program
{
static string stuName = " 徐菲菲"; //聲明stuName 變量
static void Main(string[] args)
{
int age = Student.stuAge; // 調(diào)用Student 類(lèi)的靜態(tài)變量
Console.WriteLine("{0} 今年{1} 歲了", stuName,age);
Console.ReadKey();
}
}
在上述Main() 方法中, 通過(guò)Student.stuAge 調(diào)用Student 類(lèi)中聲明的stuAge 變量,直接通過(guò)stuName 調(diào)用當(dāng)前類(lèi)的靜態(tài)變量。
03 編譯并執(zhí)行上述代碼,最終的輸出內(nèi)容如下:
徐菲菲今年12 歲了
2.實(shí)例變量
實(shí)例變量與靜態(tài)變量相反,是指沒(méi)有使用static 關(guān)鍵字( 修飾符) 聲明的變量,又可以稱為非靜態(tài)變量或?qū)ο笞兞俊?
(1) 類(lèi)中的實(shí)例變量。
當(dāng)創(chuàng)建某類(lèi)的一個(gè)實(shí)例的時(shí)候,隸屬于該類(lèi)的實(shí)例變量也被生成,當(dāng)不再有關(guān)于這個(gè)實(shí)例的引用而且實(shí)例的析構(gòu)函數(shù)執(zhí)行了以后,此實(shí)例變量失效。類(lèi)中實(shí)例變量的初始值為這種類(lèi)型變量的默認(rèn)值。
(2) 結(jié)構(gòu)體中的實(shí)例變量。
一個(gè)結(jié)構(gòu)體中的實(shí)例變量與隸屬于該結(jié)構(gòu)體的結(jié)構(gòu)變量壽命相同。換句話說(shuō),結(jié)構(gòu)體中的實(shí)例變量和其中的其他變量被同時(shí)創(chuàng)建,并且同時(shí)失效。而且該結(jié)構(gòu)體中的實(shí)例變量的初始賦值狀態(tài)和其中的其余變量一致。
若一個(gè)結(jié)構(gòu)體變量是被初始化過(guò)的,結(jié)構(gòu)體的實(shí)例變量也是如此;反過(guò)來(lái)說(shuō),如果一個(gè)結(jié)構(gòu)體變量是沒(méi)有經(jīng)過(guò)初始化的,則結(jié)構(gòu)體的實(shí)例變量也是沒(méi)有經(jīng)過(guò)初始化的。
……