《C#程序設(shè)計(jì)基礎(chǔ)》講義_第1頁(yè)
《C#程序設(shè)計(jì)基礎(chǔ)》講義_第2頁(yè)
《C#程序設(shè)計(jì)基礎(chǔ)》講義_第3頁(yè)
《C#程序設(shè)計(jì)基礎(chǔ)》講義_第4頁(yè)
《C#程序設(shè)計(jì)基礎(chǔ)》講義_第5頁(yè)
已閱讀5頁(yè),還剩72頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

《C#程序設(shè)計(jì)語(yǔ)言》

講義

目錄

.Net概述及VS2005使用......................................................................4

1、Net概述..................................................................................4

i.Microsoft.Net........................................................................................................................................................4

ii..NetFramework的概述...................................................................4

iii..NetFramework的版本....................................................................5

iv.C#語(yǔ)言與.Net的關(guān)系.....................................................................6

2、VS2005使用...............................................................................6

i.VisualStudio-fg.Net..............................................................................................................................................6

ii.開(kāi)始使用VS2005..................................................................................................................................................7

iii.從控制臺(tái)程序開(kāi)始.......................................................................13

二、C#語(yǔ)法....................................................................................14

1、基礎(chǔ)語(yǔ)法..................................................................................14

i.語(yǔ)句....................................................................................14

ii.常數(shù)、變量和常量......................................................................15

iii.表達(dá)式.................................................................................16

2、流程控制語(yǔ)句..............................................................................17

iv.順序流程.............................................................................17

v.分支流程.............................................................................18

vi.重復(fù)流程...........................................................................19

vii.調(diào)用流程...........................................................................20

三、數(shù)據(jù)類型..................................................................................21

1、數(shù)據(jù)類型概述..............................................................................21

i.概述...................................................................................21

ii.數(shù)據(jù)類型的分類........................................................................22

iii.數(shù)據(jù)類型的轉(zhuǎn)換.........................................................................23

2、單一的數(shù)據(jù)類型............................................................................24

i.存值數(shù)據(jù)類型的處理.....................................................................24

ii.整數(shù)類:存值、單一、系統(tǒng)預(yù)定義........................................................25

iii.實(shí)數(shù)類:存值、單一、系統(tǒng)預(yù)定義.......................................................25

iv.字符型:存值、單一、系統(tǒng)預(yù)定義........................................................26

V.數(shù)值數(shù)據(jù)類型間的轉(zhuǎn)換..................................................................27

vi.布爾型:存值、單一、系統(tǒng)預(yù)定義.......................................................28

3、自定義的數(shù)據(jù)類型..........................................................................28

i.使用命名空間組織自定義類型............................................................28

ii.自定義數(shù)據(jù)類型的處理..................................................................29

iii,枚舉:存值、單一、自定義..............................................................30

iv.存引用數(shù)據(jù)類型的處理..................................................................31

V.復(fù)合數(shù)據(jù)類型的處理....................................................................32

vi.類:存引用、復(fù)合、自定義..............................................................32

vii.結(jié)構(gòu)體:存值、復(fù)合、自定義...........................................................34

4、集合的數(shù)據(jù)類型............................................................................34

i.數(shù)組:存引用、集合、系統(tǒng)預(yù)定義......................................................34

5、類型間的關(guān)系..............................................................................37

i.類型中成員的訪問(wèn)級(jí)別...................................................................37

ii.類型的訪問(wèn)級(jí)別........................................................................37

iii.使用關(guān)系...............................................................................38

iv.內(nèi)嵌關(guān)系..............................................................................38

v.繼承關(guān)系..............................................................................39

vi.類的數(shù)據(jù)類型間的轉(zhuǎn)換..................................................................42

vii.值類型與object的轉(zhuǎn)換..................................................................44

四、方法......................................................................................45

1、方法的使用................................................................................45

i.方法概述...............................................................................45

ii.方法的定義............................................................................46

iii.this變量...............................................................................47

iv.方法的調(diào)用............................................................................48

V.各種參數(shù)模式..........................................................................49

vi.方法重載..............................................................................52

vii.構(gòu)造方法、析構(gòu)方法與readonly數(shù)據(jù)成員.................................................53

2、繼承關(guān)系中的方法.........................................................................56

i.方法的繼承、覆蓋與base變量...........................................................56

ii.構(gòu)造函數(shù)...............................................................................57

iii.方法的虛擬化和重寫(xiě)....................................................................59

iv.抽象方法和抽象類......................................................................64

3、方法的高級(jí)應(yīng)用...........................................................................65

i.操作符重載.............................................................................65

ii.屬性...................................................................................67

iii.索引指示器............................................................................70

iv.委托:存引用、集合、自定義............................................................71

v.委托變量與事件........................................................................73

vi.接口:存引用、復(fù)合方法成員、自定義...................................................74

五、面向?qū)ο缶幊?.............................................................................76

1、面向?qū)ο缶幊?............................................................................76

.Net概述及VS2005使用

1、.Net概述

i.Microsoft.Net

教學(xué)目標(biāo):

?什么是Microsoft.Net[概念][記憶]

?.Net的主要特點(diǎn)[概念][記憶]

Microsoft.Net(以下簡(jiǎn)稱.Net)是Microsoft公司為適應(yīng)Internet的快速發(fā)展而

推出的一種面向網(wǎng)絡(luò)、支持各種用戶終端的開(kāi)發(fā)平臺(tái)環(huán)境。.Net平臺(tái)提供了強(qiáng)大的網(wǎng)

絡(luò)交互能力,能開(kāi)發(fā)出強(qiáng)大的交互式系統(tǒng)。.Net平臺(tái)并且統(tǒng)一了各種類型項(xiàng)目的開(kāi)發(fā)

模型,使得程序員非常容易開(kāi)發(fā)各種用戶終端的系統(tǒng)。

對(duì)于開(kāi)發(fā)人員,.Net的主要特點(diǎn)有:

?完全的面向?qū)ο缶幊?/p>

?功能齊全的基礎(chǔ)類庫(kù)

?WinForm和WebForm的統(tǒng)一編程模型

?各種高級(jí)功能的集成支持:

數(shù)據(jù)庫(kù)(ADO.Net)、Xml、Web和WebService(ASP.Net)等

?多種開(kāi)發(fā)語(yǔ)言的無(wú)縫交互支持:

C#、VB.Net、C++.Net>JScript.Net、J#等

?完善的內(nèi)存管理

?對(duì)移動(dòng)設(shè)備的無(wú)縫支持

ii..NetFramework的概述

教學(xué)目標(biāo):

?.NetFramework作用[概念][記憶]

?.NetFramework架構(gòu)[概念][記憶]

.NetFramework是.Net平臺(tái)的基礎(chǔ),它為所有的.Net程序的運(yùn)行提供支持和環(huán)境。

因此,所有.Net程序,必須運(yùn)行在.NetFramework之上,沒(méi)有安裝.NetFramework的

機(jī)器是不能運(yùn)行.Net程序!

.NetFramework的安裝包主要分兩種:

?RedistributablePackage(可再發(fā)行組件包):提供給最終用戶使用,只包含

基本的.NetFramework功能。

?SDK(軟件開(kāi)發(fā)工具包):提供給開(kāi)發(fā)人員使用,除了基本的.NetFramework

功能外,還提供了開(kāi)發(fā)相關(guān)的工具,如代碼編譯器。

.NetFramwwork的架構(gòu)如下圖:

C#VB.NetC++.NetJScript.NetJ#

CommonLanguageSpecification(公共語(yǔ)言規(guī)范)

ASP.NetWindowsForms

ADO.Net和Xml

8aseClassLibrary(基礎(chǔ)類庫(kù))

CLR(公共語(yǔ)言運(yùn)行時(shí))

WindowsCOM+Services

對(duì)于.NetFramework的學(xué)習(xí),就是應(yīng)用它所提供給我們的各種功能。表現(xiàn)在程序

開(kāi)發(fā)上,就是語(yǔ)法與類庫(kù)的使用。

在.NetFramework的學(xué)習(xí)中,我們會(huì)學(xué)習(xí)BaseClassLibrary、ADO.Net、Xnd、

ASP.Net、事indowsForms和C#。(圖中字體加粗,帶有下劃線的部分)。

對(duì)于C#的學(xué)習(xí),我們是學(xué)習(xí)它的語(yǔ)法,使用C#來(lái)編寫(xiě)程序;對(duì)于BaseClass

Library、ADO.Net的Library>Xml的Library、ASP.Net的Library和WindowsForms

的Library,我們都是學(xué)習(xí)它們功能,并應(yīng)用在我們的程序當(dāng)中。

iii..NetFramework的版本

教學(xué)目標(biāo):

?.NetFramework各個(gè)版本[概念][記憶]

?我們學(xué)習(xí)的.NetFramework版本[概念][記憶]

.NetFramework從發(fā)布到現(xiàn)在,一共有以下的版本:

?1.0版本及1.1版本:實(shí)現(xiàn)了整個(gè).Net架構(gòu),為.Net平臺(tái)打下基礎(chǔ)

?2.0版本:L0\l.1版本的延續(xù),主要增加了泛型語(yǔ)法的支持,完善了各種類庫(kù)。

?3.0版本及3.5版本:2.0版本的擴(kuò)展,以2.0版本為基礎(chǔ),增加了WPF、WCF、WWF

和InfoCard的功能。

下圖是.NetFramework3.0的主要內(nèi)容:

WindowsWindowsWindows

PresentationCommunicationWorkflow

InfoCard

FoundationFoundationFoundation

(WPF)(WCF)(WWF)

.NetFramework2.0

所以,我們將學(xué)習(xí)處于承前啟后位置的.NetFramework2.0。

iv.C#語(yǔ)言與.Net的關(guān)系

教學(xué)目標(biāo):

?C#語(yǔ)言與.Net的關(guān)系[概念][記憶]

由于.NetFramework采用了CommonLanguageSpecification(CLS,公共語(yǔ)言規(guī)范),

使得程序員可以使用多種語(yǔ)言的語(yǔ)法進(jìn)行.Net程序的開(kāi)發(fā),并能無(wú)縫的融合在一起。

但除了C#語(yǔ)言,其他語(yǔ)言都會(huì)為了遷就舊語(yǔ)言的語(yǔ)法而作出妥協(xié)。而C#語(yǔ)言是伴

隨著.Net平臺(tái)而產(chǎn)生的,是.Net平臺(tái)的原生語(yǔ)言,不存在任何語(yǔ)法上的限制。而它使

用最流行的類C++的語(yǔ)法,與C++、Java的語(yǔ)法非常相似。

所以C#語(yǔ)言是我們的學(xué)習(xí)對(duì)象。

2、VS2005使用

i.VisualStudio與.Net

教學(xué)目標(biāo):

?VisualStudio的版本[概念][記憶]

?我們使用的VS.Net版本[概念][記憶]

VisualStudio開(kāi)發(fā)工具系列,是Microsoft提供的可視化IDE(Integrated

DevelopmentEnvironment,集成開(kāi)發(fā)環(huán)境)。它為軟件開(kāi)發(fā)提供了強(qiáng)大的支持。

在之前的VS6.0版本,分為了大家熟悉的VC++、VB、VFP等。

而.Net是Microsoft的重頭戲,Microsoft當(dāng)然令到新版本的VisualStudio對(duì).Net

有強(qiáng)大的支持。新版本的VS把多種語(yǔ)言的開(kāi)發(fā)環(huán)境集中在一起,并以年份進(jìn)行命名,

至今有:VS2002(.NetFramework1.0)、VS2003(.NetFramework1.1)、VS2005(.Net

Framework2.0)、VS2008(.NetFramework3.5)0

當(dāng)然,我們學(xué)習(xí)的正是VS2005版本。

開(kāi)始使用VS2005

教學(xué)目標(biāo):

了解HelloWorld程序[概念][理解]

編寫(xiě)HelloWorld代碼[步驟][記憶]

生成HelloWorld程序[步驟][記憶]

運(yùn)行HelloWorld程序[步驟][記憶]

VS2005的啟動(dòng)[步驟][應(yīng)用]

VS2005的菜單[概念][應(yīng)用]

新建控制臺(tái)項(xiàng)目[步驟][應(yīng)用]

項(xiàng)目的概念[概念][記憶]

?解決方案的概念[概念][記憶]

?文檔窗口[概念][應(yīng)用]

?解決方案資源管理器[概念][應(yīng)用]

?代碼源文件[概念][應(yīng)用]

?執(zhí)行文件[概念][應(yīng)用]

?VS2005的項(xiàng)目生成功能[步驟][應(yīng)用]

?VS2005的項(xiàng)目運(yùn)行功能[步驟][應(yīng)用]

HelloWorld程序是最經(jīng)典的編程入門示例,我們也從這個(gè)示例開(kāi)始。

下面是HelloWorld示例程序的運(yùn)行界面:

HelioWorld是一個(gè)命令行的程序,與用戶的交互是通過(guò)文字形式一行一行進(jìn)行的。

這個(gè)程序首先提示用戶輸入名字,然后顯示輸入的名字,并顯示“你好,歡迎來(lái)到C#

的世界!最后等待用戶按回車鍵結(jié)束程序。

現(xiàn)在我們開(kāi)始一步步編寫(xiě)這個(gè)HelloWorld程序:

a)在“C:\”下,新建一個(gè)文本文件:

b)把文件名改為“HelloWorld.cs”:—

c)雙擊文件,會(huì)自動(dòng)啟動(dòng)VS2005進(jìn)行編輯。(當(dāng)然,如果愿意也可以使用記

事本進(jìn)行編輯。)

d)在文件內(nèi)輸入以下內(nèi)容(在VS2005會(huì)有顏色顯示,在記事本當(dāng)然就沒(méi)有了)

注意:必須嚴(yán)格區(qū)分大小寫(xiě):

classProgram

staticvoidMain(string[]args)

stringname;

System.Console.Write("請(qǐng)輸入你的名字(按回車結(jié)束輸入):“);

name=System.Console.ReadLine();

System.Console.WriteLine(name+”你好,歡迎來(lái)到C#的世界!”);

System.Console.WriteLine("按回車鍵結(jié)束...”);

System.Console.ReadLine();

e)把編寫(xiě)好的CS文件保存好。

至此,我們已經(jīng)編寫(xiě)好HelloWorld的代碼了。在這里CS文件就是C#源文件,CS

是CSharp的縮略。

源文件是一堆文字,雖然它符合C#的語(yǔ)法要求,但此刻.Net平臺(tái)并不認(rèn)識(shí)它,不

能在.Net平臺(tái)能上運(yùn)行。要令源程序能在.Net平臺(tái)上運(yùn)行,必須進(jìn)行生成的步驟。

生成就是根據(jù).Net的要求,通過(guò)源文件產(chǎn)生相應(yīng)的.Net平臺(tái)代碼。那些生成后的

代碼就能在.Net平臺(tái)上運(yùn)行。我們通過(guò)以下步驟把剛才編寫(xiě)的源文件產(chǎn)生相應(yīng)的.Net

平臺(tái)代碼:

a)運(yùn)行“開(kāi)始”->“程序”->"MicrosoftVisualStudio2005M->Visual

StudioTools"的"VisualStudio2005命令提示”:

b)輸入"cd\",并按回車:

c)輸入“escHelloWorld.cs",并按回車。此時(shí),就開(kāi)始cs文件的生成處理:

CAVisualStudio2005命令提示日日口

SettingenuironnentforusingMicrosoftUisualStudio2005x86tools.|---

C:\ProgramFilesXMicrosoftUisualStudio8\UC>cd\

C:\>cscHelloWorld.es

Microsoft<R>UisualCtt2005編譯器版本8.00.50727.42

用于Microsoft<R>Windovis<R>2005Framework版本2.0.50727

<C〉MicrosoftCorporation2001-2005?保南所有權(quán)利°

注意:只有cs文件的內(nèi)容完全正確,才會(huì)和圖片的內(nèi)容一致。否則會(huì)出現(xiàn)錯(cuò)

誤提示的信息。如果出現(xiàn)錯(cuò)誤提示信息,請(qǐng)檢查CS文件的內(nèi)容,特別是大小

寫(xiě)。

d)如果生成沒(méi)有錯(cuò)誤,即如上圖所示,那么在“c:\”下會(huì)產(chǎn)生符合.Net平臺(tái)

的代碼程序“Helloworld,exe":」

現(xiàn)在,我們已經(jīng)產(chǎn)生了可以在.Net平臺(tái)上運(yùn)行的HelloWorld程序,只要雙擊

“HelloWorld.exe”就可以運(yùn)行。

這個(gè)就是我們編寫(xiě)的第一個(gè)C#程序!

下面,我們使用VS2005來(lái)編寫(xiě)、生成和運(yùn)行我們的HelloWorld程序。

首先,我們運(yùn)行"開(kāi)始程序"-"MicrosoftVisualStudio2005"的"Microsoft

VisualStudio2005”來(lái)啟動(dòng)VS2005:

下一步,我們建立一個(gè)新的VS2005的項(xiàng)目,

選擇“文件”菜單->“新建"項(xiàng)目…”:

??起的質(zhì)licrosoftVisualStudio

文件包)同銀⑥飯困電)工小?宣口包)社區(qū)?砂助縱

*<1)川:jJia(J)...Ctrl+Shitfi;

打開(kāi)??*..

關(guān)閉IE)」文件9..Cirl+M

從現(xiàn)有代碼班項(xiàng)目II)

此時(shí)會(huì)出現(xiàn)“新建項(xiàng)目”對(duì)話框:

如上圖的紅框所示進(jìn)行選擇或輸入:

?項(xiàng)目類型:Windows

?模板:控制臺(tái)應(yīng)用程序

?名稱:He11World

?位置:D:\MyProjects

?解決方案名稱:MySolution

點(diǎn)擊“確定”后,就會(huì)生成MySolution的解決方案和HelloWorld的項(xiàng)目,它們位

置在D:\MyProjects的目錄下。

在VS2005里面,“項(xiàng)目”是最小的生成單位,項(xiàng)目里面可以包含一個(gè)或多個(gè)源文件。

我們的系統(tǒng)是由一或多個(gè)項(xiàng)目組成。而項(xiàng)目是組織在“解決方案”里面,一個(gè)解決方

案可以包含一個(gè)或多個(gè)項(xiàng)目。

創(chuàng)建項(xiàng)目后的VS2005界面,會(huì)分為三大部分:功能區(qū)域、文檔區(qū)域和功能窗口區(qū)

域。

?功能區(qū)域:包括菜單和工具欄,上面紅色框的部分

?文檔區(qū)域:各個(gè)文檔的處理區(qū)域,中間藍(lán)色框的部分

?功能窗口區(qū)域:包括左邊的“工具箱”和右邊的“解決方案資源管理器”、“類視圖”、

“屬性”等,粉紅色框的部分

通過(guò)功能區(qū)域和功能窗口區(qū)域,我們可以對(duì)當(dāng)前的解決方案、項(xiàng)目、文檔進(jìn)行處理,

而文檔的編輯則是在文檔區(qū)域里面進(jìn)行。

下一步,我們?cè)赑rogram,cs里面,編寫(xiě)同樣的HelloWorld程序。把Program,cs

里面的內(nèi)容全部刪除,輸入下面的內(nèi)容:

classProgram

staticvoidMain(string[]args)

stringname;

System.Console.Write(〃請(qǐng)輸入你的名字(按回車結(jié)束輸入):〃);

name=System.Console.ReadLineO;

System.Console.WriteLine(name+〃你好,歡迎來(lái)到C#的世界!〃);

System.Console.WriteLine(〃按回車鍵結(jié)束???〃);

System.Console.ReadLine();

保存好輸入的內(nèi)容。

下一步,我們就生成HelloWorld程序:

選擇“生成'菜單"生成解決方案”??

生成⑤)調(diào),6)數(shù)據(jù)R)工具建)

畫(huà)至成解決方運(yùn)④F6

重新生成解決方案國(guó))

清理解決方案C)

'迷擇"生成解決方案”后,在VS2005的左下角,會(huì)出現(xiàn)解決方案生成進(jìn)度的提示。

如果沒(méi)有錯(cuò)誤,會(huì)出現(xiàn)下圖的“生成成功”提示。如果出現(xiàn)任何錯(cuò)誤,會(huì)出現(xiàn)錯(cuò)誤提示。

如果出現(xiàn)錯(cuò)誤提示信息,請(qǐng)檢查CS文件的內(nèi)容,特別是大小寫(xiě)。

生成成功

下一步,我們可以在D:\MyProjects目錄下,找到解決方案的目錄“MySolution”,

并在里面能找到HelloWorld項(xiàng)目的目錄“H在里World”。在“H在里World”目錄里面,

就能看到Program.cs這個(gè)源文件。如果生成成功,我們會(huì)在“HelloWorld”目錄下的

“bin”->“debug”里面找到我們所認(rèn)識(shí)的HelloWorld.exe0此時(shí)雙擊運(yùn)行,查看效

果。(法:VS2005會(huì)同時(shí)產(chǎn)生一個(gè)HelloWorld.vshost.exe文件,此文件是VS2005所

需要,但對(duì)于我們沒(méi)有任何作用。)

當(dāng)然,VS2005非常強(qiáng)大,我們并不需要找到生成的exe雙擊后才能運(yùn)行,我們?cè)?/p>

VS2005里面就可以運(yùn)行相應(yīng)的exe:

選擇“調(diào)試”菜單->“開(kāi)始執(zhí)行(不調(diào)試)”:

調(diào)試@)I數(shù)據(jù)?工具d)窗口⑥

窗口?)?

?啟動(dòng)調(diào)試⑤)F5

|?開(kāi)始執(zhí)行壞調(diào)試)Of)Ctrl+F5|

晶附加到進(jìn)程電)

異?,F(xiàn)).一Ctrl+D,E

運(yùn)峰“開(kāi)始執(zhí)行(不調(diào)試)”后,就會(huì)運(yùn)行HelloWorld程序,并在結(jié)束前增加“請(qǐng)

按任意鍵繼續(xù)??.”的等待功能。

iii.從控制臺(tái)程序開(kāi)始

教學(xué)目標(biāo):

?Console.Write和Console.WriteLine的作用[概念][記憶]

?Console.ReadLine的作用[概念][記憶]

?變量的作用[概念][記憶]

命令行程序,也稱為控制臺(tái)程序(ConsoleApplication),它是歷史久遠(yuǎn)的應(yīng)用類

型。由于控制臺(tái)程序的用戶交互形式簡(jiǎn)單,在當(dāng)今最求視覺(jué)效果和用戶體驗(yàn)的時(shí)代,它

已經(jīng)逐漸遠(yuǎn)離人們的視線。但正是由于控制臺(tái)程序的簡(jiǎn)單交互的特性,使得代碼開(kāi)發(fā)簡(jiǎn)

潔高效,不需要繁復(fù)的界面交互控制處理,它成為了程序員的有力工具。使用控制臺(tái)程

序,我們可以專注于系統(tǒng)自身的處理,專注于算法的開(kāi)發(fā)和驗(yàn)證,專注于與新技術(shù)的學(xué)

習(xí),而不受其他影響。

所以我們的教學(xué),也使用控制臺(tái)程序進(jìn)行。

下面,我們?cè)囍薷腍elloWorld程序,改變它的行為。我們?cè)黾幽挲g的輸入和顯

力、O

首先,修改源代碼的內(nèi)容為:

classProgram

(

staticvoidMain(string[]args)

(

stringname;

System.Console.Write("請(qǐng)輸入你的名字(按回車結(jié)束輸入):");

name=System.Console.ReadLine();

stringage;

System.Console.Write("請(qǐng)輸入你的年齡(按回車結(jié)束輸入):”);

age=System.Console.ReadLine();

System.Console.WriteLine(name+”你好,歡迎來(lái)到C#的世界!”);

System.Console.WriteLine(“你的年齡是:"+age);

System.Console.WriteLine("按回車鍵結(jié)束...”);

System.Console.ReadLine();

下一步就是生成解決方案,然后執(zhí)行程序。

在HelloWorld的代碼中,我們使用了兩種信息輸出的功能,分型是

System.Console.Write和System.Console.WriteLine。它們的區(qū)別在于Write顯示信

息后,還可以在后面繼續(xù)輸入信息,一行并沒(méi)有結(jié)束而WriteLine就自動(dòng)結(jié)束一行。而

兩種輸出功能,都是在()里面放置需要輸出的內(nèi)容。

而用戶輸入的信息,使用的是System.Console.ReadLine,它要求用戶用回車結(jié)束

輸入。由于用戶輸入的內(nèi)容是不確定的,我們使用一個(gè)變量(一個(gè)名字,可以使用它保

存任意內(nèi)容)保存用戶輸入的內(nèi)容。提示:變量要說(shuō)明所保存內(nèi)容的類型,例子中的是

string(字符串)。

文字信息,需要用雙引號(hào)(")括起來(lái)。由于用戶從界面輸入的是文字類型的信息(在

控制臺(tái)里面,輸入的年齡信息也是文字),所以使用加號(hào)(+)把兩個(gè)文字信息連起來(lái)。

、C#語(yǔ)法

1、基礎(chǔ)語(yǔ)法

i.語(yǔ)句

教學(xué)目標(biāo):

?語(yǔ)句空白與語(yǔ)句結(jié)束[概念][應(yīng)用]

?語(yǔ)句塊[概念][應(yīng)用]

?注釋[概念][應(yīng)用]

c#程序是通過(guò)一條一條語(yǔ)句累積起來(lái),完成我們所希望的功能。下面我們就學(xué)習(xí)

C#的語(yǔ)句要求。

C#語(yǔ)句是一些文字的內(nèi)容,可以由數(shù)據(jù)、字母(包括英文、中文、日文等)、符號(hào)

組成。每條C#語(yǔ)句,都必須使用分號(hào)(;)結(jié)束。注意:分號(hào)必須是英文半角。例如:

System.Console.WriteLine(name+”你好,歡迎來(lái)到C#的世界!");。一條語(yǔ)句沒(méi)有

結(jié)束之前,中間可以增加空白(空格和換行),令到人們閱讀更加方便。注意:一個(gè)完

整單詞中間不能有空格。例如:name=System.Console.ReadLine();o

如果程序由多條語(yǔ)句組成,就需要使用大括號(hào)({})括起來(lái),組成語(yǔ)句塊。語(yǔ)句塊里

面可以包含其他語(yǔ)句塊。

雖然代碼已經(jīng)存在程序的邏輯,通過(guò)代碼的分析可以知道程序的作用。但為了更方

便人的閱讀,我們可以增加注釋來(lái)說(shuō)明代碼的意思。而注釋在源代碼生成的時(shí)候,會(huì)自

動(dòng)被忽略掉,所以注釋對(duì)程序的執(zhí)行邏輯沒(méi)有任何影響。但代碼有了注釋的說(shuō)明,會(huì)大

大方便我們?nèi)ラ喿x代碼。

注釋分為兩種:

?單行注釋:使用〃開(kāi)始,這一行后面所有的文字都是注釋。例如:

stringname;〃這個(gè)是保存名字的變量

?多行注釋:使用/*開(kāi)始,使用*/結(jié)束,中間部分的所有內(nèi)容都是注釋內(nèi)容,內(nèi)

容可以是多行。例如:

/*

這個(gè)是注釋的示例

它有多行

*/

常數(shù)、變量和常量

教學(xué)目標(biāo):

?常數(shù)[概念][應(yīng)用]

?常量[概念][應(yīng)用]

?變量[概念][應(yīng)用]

?聲明語(yǔ)句[概念][記憶]

?命名規(guī)則[概念][應(yīng)用]

?常量、變量的生存范圍和使用范圍[概念][理解]

?程序調(diào)試查看變量[概念][應(yīng)用]

?引用示例圖表示變量[概念][應(yīng)用]

計(jì)算機(jī)程序的作用,就是加工處理一系列信息。這些信息有的是固定的,有的是會(huì)

在程序的運(yùn)行期間發(fā)生變化。

對(duì)于固定內(nèi)容的信息,我們采用常數(shù)和常量來(lái)表示

?常數(shù):固定的內(nèi)容??梢允菙?shù)值,如10、15.9;也可以是文字,如〃你好,歡迎來(lái)

到C#的世界!常數(shù)之間是沒(méi)有任何聯(lián)系的,就算他們的內(nèi)容一樣,例如都是10,

但一個(gè)變化不會(huì)引起另一個(gè)產(chǎn)生變化。

?常量:指向常數(shù)的一個(gè)名字,這個(gè)名字可以在其他語(yǔ)句中使用,但其他語(yǔ)句使用中

不能改變名字所指向的內(nèi)容。常量使用const關(guān)鍵字標(biāo)記。如:conststringwelcome

="歡迎來(lái)到CSTP”;。

提示:除了最簡(jiǎn)單的程序外,我們都應(yīng)該使用常量而不是常數(shù),因?yàn)槌A坑信啃?/p>

改和表明意義的功能。

對(duì)于可變內(nèi)容的信息,我們采用變量來(lái)表示。

?變量:指向一個(gè)數(shù)值的名字,這個(gè)名字可以在其他語(yǔ)句中使用,并且可以改變名字

所指向的內(nèi)容。

無(wú)論變量還是常量,都必須先告訴程序這個(gè)名字的存在后,才能被其他語(yǔ)句使用。

告訴程序存在的語(yǔ)句,稱為聲明語(yǔ)句。

?變量聲明:數(shù)據(jù)類型變量名字;

?常量聲明:const數(shù)據(jù)類型常量名字;

注意:如果變量或常量沒(méi)有聲明,使用它們的語(yǔ)句在生成的時(shí)候會(huì)出錯(cuò)。

變量或常量的名字必須遵循以下規(guī)則:

?必須以字母(包括英文、中文、日文等)或下劃線開(kāi)始

?只能由字母、數(shù)字、下劃線組成,而不能包含空格、標(biāo)點(diǎn)符號(hào)、運(yùn)算符等其他符號(hào)

?不能與C#中的關(guān)鍵字相同,如const、string>class、static、void等。關(guān)鍵字

是C#所需要使用的名字,在VS2005里面是藍(lán)色字體。

變量'常量聲明后,就能在后面的語(yǔ)句中使用,但這個(gè)使用是有限制的,這個(gè)限制

與變量、常量的生存范圍和訪問(wèn)范圍相關(guān)。

?生存范圍:從該變量,常量聲明開(kāi)始,到它所在的語(yǔ)句塊結(jié)束位置。

?訪問(wèn)范圍:從該變量'常量聲明之后,到它所在的語(yǔ)句塊結(jié)束位置之前。包括里面

子語(yǔ)句塊。

變量/常量在同一個(gè)語(yǔ)句塊里面,不能重復(fù)聲明同一名字。但可以聲明一個(gè)外層語(yǔ)

句塊已經(jīng)存在的變量/常量,此時(shí)在該變量/常量的訪問(wèn)范圍內(nèi),會(huì)屏蔽外層的同名變量

/常量。

在程序的語(yǔ)句執(zhí)行過(guò)程中,變量的內(nèi)容會(huì)跟著發(fā)生變化,而這些變化會(huì)對(duì)程序的執(zhí)

行結(jié)果產(chǎn)生影響。因此,我們需要工具去分析變量的內(nèi)容變化情況。我們有兩種工具去

分析變量的變化:

?一種是在程序運(yùn)行的時(shí)候進(jìn)行動(dòng)態(tài)分析,這種是調(diào)試工具

?一種是在程序還沒(méi)有運(yùn)行的時(shí)候進(jìn)行靜態(tài)分析,這種是引用示例圖。

每款好的IDE(集成開(kāi)發(fā)環(huán)境)都會(huì)提供功能齊全的調(diào)試工具,這些調(diào)試功可以讓

開(kāi)發(fā)人員控制程序的運(yùn)行,并查看各種運(yùn)行時(shí)候的信息。注意:要程序進(jìn)入調(diào)試狀態(tài),

必須先讓源代碼能成功生成程序。

啟動(dòng)調(diào)試后,我們通過(guò)(程序執(zhí)行)斷點(diǎn)的設(shè)置,讓程序在執(zhí)行到某個(gè)語(yǔ)句的時(shí)候

停止。當(dāng)程序停止在某個(gè)語(yǔ)句的時(shí)候,程序就處在一個(gè)靜止的狀態(tài),各種信息停止處理。

此時(shí),我們就能查看變量在這一刻的內(nèi)容。

引用示例圖是為每一程序語(yǔ)句標(biāo)出當(dāng)前各個(gè)變量的內(nèi)容,通過(guò)逐步分析,我們可以

更深刻的理解程序的執(zhí)行。引用示例圖是使用。出iceExcel進(jìn)行繪制。

iii.表達(dá)式

教學(xué)目標(biāo):

?表達(dá)式語(yǔ)句[概念][記憶]

?操作符及操作數(shù)[概念][記憶]

?賦值操作符[概念][應(yīng)用]

?算術(shù)操作符[概念][應(yīng)用]

?位操作符[概念][應(yīng)用]

?復(fù)合賦值操作符[概念][應(yīng)用]

?比較操作符[概念][應(yīng)用]

?邏輯操作符[概念][應(yīng)用]

?操作符優(yōu)先級(jí)[概念][應(yīng)用]

計(jì)算機(jī)程序?qū)π畔⑦M(jìn)行加工處理,就是對(duì)信息中的數(shù)據(jù)進(jìn)行各種操作,這些操作的

語(yǔ)句就是表達(dá)式語(yǔ)句。在程序代碼中,主要是表達(dá)式語(yǔ)句。

表達(dá)式是由一系列的操作符和操作數(shù)組成,這些操作符按照一定的順序執(zhí)行,表達(dá)

式運(yùn)行后會(huì)產(chǎn)生操作結(jié)果。

?操作符:對(duì)操作數(shù)的操作方式

?操作數(shù):數(shù)據(jù)或產(chǎn)生數(shù)據(jù)的任何形式,例如常量、變量和表達(dá)式。

操作符一定要操作數(shù)進(jìn)行操作,操作符可以帶多少個(gè)操作數(shù)是由不同操作符本身決

定的。操作符帶的操作數(shù)數(shù)量可以是1個(gè)、2個(gè)或3個(gè),相應(yīng)的操作符分別稱為1元操

作符、2元操作符和3元操作符。

操作符主要有以下幾類:

?賦值操作符和復(fù)合賦值操作符:令變量或常量指向操作數(shù)。

?算術(shù)操作符:對(duì)操作數(shù)進(jìn)行數(shù)學(xué)運(yùn)算,包括加(+)、減(-)、乘(*)、除(/)、取

余數(shù)(Q和取負(fù)數(shù)(-)o

?位操作符:對(duì)操作數(shù)按照二進(jìn)制的形式,進(jìn)行二進(jìn)制位的運(yùn)算,包括與(&)、或(|)、

異或O、取補(bǔ)數(shù)(、)、左移(?)和右移(>>)。

?比較操作符:對(duì)操作數(shù)進(jìn)行比較,比較后的結(jié)果是true或false,包括等于(==)、

不等于(!=)、小于(<)、小于等于(<=)、大于(>)和大于等于(>=)o

?邏輯操作符:對(duì)操作數(shù)進(jìn)行邏輯運(yùn)算,運(yùn)算后的結(jié)果是true或false,包括邏輯與

(&&)、邏輯或(||)和邏輯非(!)0

?自增、自減操作符:運(yùn)算符對(duì)整數(shù)型變量進(jìn)行操作,令變量的值增1(++)或減1

(一)o

表達(dá)式可以由多個(gè)操作符組成,這些操作符之間存在執(zhí)行的優(yōu)先級(jí)關(guān)系。默認(rèn)的優(yōu)

先級(jí)由C#語(yǔ)法決定,我們可以通過(guò)添加小括號(hào)來(lái)控制操作符之間的順序。

2、流程控制語(yǔ)句

iv.順序流程

教學(xué)目標(biāo):

?多條語(yǔ)句按順序執(zhí)行[概念][應(yīng)用]

C#程序由多條語(yǔ)句組成,這些語(yǔ)句是一條一條執(zhí)行的,默認(rèn)的執(zhí)行順序就是按照編

寫(xiě)的順序,從上往下執(zhí)行。順序流程就是指C#語(yǔ)句按照從上往下的順序一條一條執(zhí)行,

它是C#程序的主要流程。

分支流程

教學(xué)目標(biāo):

?多條語(yǔ)句按條件選擇性執(zhí)行[概念][應(yīng)用]

?if語(yǔ)句及其形式[概念][應(yīng)用]

?switch語(yǔ)句及其形式[概念][應(yīng)用]

在有些情況下,對(duì)于多條語(yǔ)句,我們是有選擇性的執(zhí)行,并不能按順序全部執(zhí)行。

這個(gè)時(shí)候,我們就需要使用分支流程。分支流程就是指C#語(yǔ)句根據(jù)條件,有選擇性的

執(zhí)行一部分(一條或一個(gè)語(yǔ)句塊)語(yǔ)句??刂品种Я鞒痰恼Z(yǔ)句也稱為條件語(yǔ)句。法意:

對(duì)于語(yǔ)句塊里面的多條語(yǔ)句,默認(rèn)的執(zhí)行流程還是順序流程,但語(yǔ)句塊也可以包含分支

流程、重復(fù)流程和調(diào)用流程。

在C#里面有兩種分支流程的控制語(yǔ)句,它們是if語(yǔ)句和switch語(yǔ)句。if語(yǔ)句:

如果選擇的條件成立,執(zhí)行緊跟著的語(yǔ)句或語(yǔ)句塊,否則不執(zhí)行;switch語(yǔ)句:根據(jù)

條件,執(zhí)行符合條件要求的語(yǔ)句或語(yǔ)句塊。

if語(yǔ)句的形式:

if(判斷表達(dá)式)〃判斷表達(dá)式必須能產(chǎn)生true\false

〃判斷表達(dá)式的值為true時(shí)執(zhí)行

else

〃判斷表達(dá)式的值為false時(shí)執(zhí)行

注意:else是可選的內(nèi)容;如果語(yǔ)句塊中只有一條語(yǔ)句,可以不用{};每個(gè)else

必須有一個(gè)對(duì)應(yīng)的if,else和if使用最近匹配原則。

switch語(yǔ)句的形式:

switch(表達(dá)式)

case值1:

〃表達(dá)式的值等于值1時(shí)執(zhí)行

break;

case值2:

//表達(dá)式的值等于值2時(shí)執(zhí)行

break;

case值n:

〃表達(dá)式的值等于值n時(shí)執(zhí)行

break;

default:

〃表達(dá)式的值不等于上面任何一個(gè)值時(shí)執(zhí)行

break;

注意:每個(gè)分支必須用break結(jié)束;default是可選的內(nèi)容;可以令多個(gè)case執(zhí)

行同一個(gè)語(yǔ)句塊;每次執(zhí)行,只會(huì)有1個(gè)case被執(zhí)行;可以在語(yǔ)句塊里面使用goto

語(yǔ)句,跳轉(zhuǎn)到其他case的語(yǔ)句塊。

vi.重復(fù)流程

教學(xué)目標(biāo):

?一條或多條語(yǔ)句按條件重復(fù)執(zhí)行[概念][應(yīng)用]

?while語(yǔ)句及其形式[概念][應(yīng)用]

?do-while語(yǔ)句及其形式[概念][應(yīng)用]

?for語(yǔ)句及其種形式[概念][應(yīng)用]

?foreach語(yǔ)句及其形式[概念][記憶]

在有些情況下,我們希望重復(fù)執(zhí)行一條或多條語(yǔ)句,此時(shí),我們就需要使用重復(fù)流

程。重復(fù)流程就是指在特定條件下,重復(fù)執(zhí)行一部分(一條或一個(gè)語(yǔ)句塊)語(yǔ)句。控制

重復(fù)流程的語(yǔ)句也稱為循環(huán)語(yǔ)句。注意:對(duì)于語(yǔ)句塊里面的多條語(yǔ)句,默認(rèn)的執(zhí)行流程

還是順序流程,但語(yǔ)句塊也可以包含分支流程、重復(fù)流程和調(diào)用流程。

在C#里面有四種重復(fù)流程的控制語(yǔ)句,它們是while語(yǔ)句、do-while語(yǔ)句、for

語(yǔ)句和foreach語(yǔ)句。其中,while語(yǔ)句、do-while語(yǔ)句和for語(yǔ)句的使用,沒(méi)有任何

特殊要求。foreach語(yǔ)句是.Net新增加的功能,它的使用有條件限制,并不是所有情況

下都能使用foreach語(yǔ)句。

while語(yǔ)句的形式:

while(判斷表達(dá)式)〃判斷表達(dá)式必須能產(chǎn)生true\false

〃判斷表達(dá)式的值為true時(shí)執(zhí)行

注意:如果語(yǔ)句塊中只有一條語(yǔ)句,可以不用},語(yǔ)句塊可能一次也不執(zhí)行。

do-while語(yǔ)句的形式:

do

〃首先會(huì)執(zhí)行一次

〃當(dāng)判斷表達(dá)式的值為true時(shí)再次執(zhí)行

while(判斷表達(dá)式);

注意:如果語(yǔ)句塊中只有一條語(yǔ)句,可以不用〃;語(yǔ)句塊會(huì)至少執(zhí)行性一次;

while(表達(dá)式)后說(shuō)必須要有分號(hào)(;)。

for語(yǔ)句的形式:

for(初始表達(dá)式;判斷表達(dá)式;調(diào)整表達(dá)式)〃判斷表達(dá)式必須能產(chǎn)生

true\false

〃判斷表達(dá)式的值為true時(shí)執(zhí)行

三種表達(dá)式和語(yǔ)句塊的執(zhí)行流程是:

初始化表達(dá)式->判斷表達(dá)式->語(yǔ)句塊->調(diào)整表達(dá)式->判斷表達(dá)式->語(yǔ)

句塊->調(diào)整表達(dá)式->判斷表達(dá)式~>語(yǔ)句塊……->調(diào)整表達(dá)式->判斷表達(dá)

式。

注意:如果語(yǔ)句塊中只有一條語(yǔ)句,可以不用{};三種表達(dá)式之間必須有分號(hào)隔開(kāi)

(;);三種表達(dá)式是可選的,但中間的兩個(gè)分號(hào)(;)必須要有;初始表達(dá)式中定義的變量,

生存范圍是在語(yǔ)句塊結(jié)束。

foreach語(yǔ)句的形式:

foreach(數(shù)據(jù)類型變量名字in集合變量名字)

〃集合還有元素取出

注意:如果語(yǔ)句塊中只有一條語(yǔ)句,可以不用{};變量的生存范圍是在語(yǔ)句塊結(jié)束;

變量自動(dòng)從集合里面取出元素;變量的類型與集合中元素的類型要一致;集合變量的數(shù)

據(jù)類型必須實(shí)現(xiàn)IEnumerable

無(wú)論是哪一種循環(huán)語(yǔ)句,我們都可以在語(yǔ)句塊里面控制循環(huán)的流程。在C#里面有

兩種控制循環(huán)的語(yǔ)句,它們是break語(yǔ)句和continue語(yǔ)句。這兩種語(yǔ)句直接用分號(hào)(;)

結(jié)束即可,即break;和continue;。

?break語(yǔ)句:從break語(yǔ)句的位置,直接跳到語(yǔ)句塊的結(jié)束位置,并且不再執(zhí)行任

何表達(dá)式而結(jié)束循環(huán);break語(yǔ)句只能結(jié)束它所在那一層循環(huán)。

?coninue語(yǔ)句:從continue語(yǔ)句的位置,直接跳到語(yǔ)句塊的結(jié)束位置,然后繼續(xù)

執(zhí)行循環(huán)語(yǔ)句相關(guān)的表達(dá)式,繼續(xù)循環(huán)流程;continue語(yǔ)句只能繼續(xù)它所在那一層

循環(huán)。

vii.調(diào)用流程

教學(xué)目標(biāo):

?函數(shù)機(jī)制[概念][記憶]

?函數(shù)的調(diào)用[概念][記憶]

在C#里面,可以類似于變量、常量使用名字來(lái)保存內(nèi)容,我們可以使用一個(gè)名字來(lái)

指向一個(gè)語(yǔ)句塊。在其需要使用相同語(yǔ)句塊的地方,可以通過(guò)語(yǔ)句塊的名字調(diào)用語(yǔ)句塊。

這樣的機(jī)制就是函數(shù)機(jī)制,名字-語(yǔ)句塊的組合就是函數(shù),名字是函數(shù)名,語(yǔ)句塊

是函數(shù)體,使用名字來(lái)調(diào)用語(yǔ)句塊的處理是函數(shù)調(diào)用。

調(diào)用流程就是指使用了函數(shù)調(diào)用,原來(lái)的流程會(huì)先停止,進(jìn)入到函數(shù)體的語(yǔ)句塊中

的流程開(kāi)始執(zhí)行,當(dāng)函數(shù)體的流程結(jié)束后,原來(lái)的流程繼續(xù)執(zhí)行。

三、數(shù)據(jù)類型

1、數(shù)據(jù)類型概述

i.概述

教學(xué)目標(biāo):

?什么是數(shù)據(jù)類型[概念][記憶]

?變量'常量與數(shù)據(jù)類型[概念][應(yīng)用]

?數(shù)據(jù)類型的實(shí)體值[概念][記憶]

計(jì)算機(jī)程序的作用就是加工輸入的數(shù)據(jù),并輸出加工后的數(shù)據(jù)。

從程序運(yùn)行的第一刻開(kāi)始,我們就需要保存和使用各種各樣的數(shù)據(jù),包括用戶輸入

的數(shù)據(jù)、硬盤(pán)中的數(shù)據(jù)、數(shù)據(jù)庫(kù)中的數(shù)據(jù)、其他計(jì)算機(jī)通過(guò)網(wǎng)絡(luò)傳輸過(guò)來(lái)的數(shù)據(jù)等等。

在加工的過(guò)程中,又會(huì)產(chǎn)生各種各樣的

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論