版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 賣火柴的小女孩的讀后感3篇
- 國(guó)旗下講話稿:升旗儀式的意義
- 組織胚胎學(xué)試題庫(kù)及參考答案
- 全國(guó)導(dǎo)基測(cè)試題含參考答案
- 1+x無(wú)損檢測(cè)習(xí)題庫(kù)及答案
- 2024年新人教版七年級(jí)上冊(cè)英語(yǔ)教學(xué)課件 Starter Unit 2第5課時(shí)(Section B Project 2a-2d)第5課時(shí)(Section B Project 2a-2d)
- 四川省瀘州市某房地產(chǎn)項(xiàng)目工程施工組織設(shè)計(jì)(技術(shù)標(biāo))【完整版】
- 滄縣2025屆數(shù)學(xué)六年級(jí)第一學(xué)期期末學(xué)業(yè)水平測(cè)試模擬試題含解析
- 人教版一年級(jí)數(shù)學(xué)下冊(cè)導(dǎo)學(xué)案【第5課時(shí) 解決問(wèn)題】
- 食品安全追溯系統(tǒng)
- 一年級(jí)家訪記錄表
- 1.3《建造塔臺(tái)》優(yōu)質(zhì)課件
- 10420裝飾表現(xiàn)課件
- 2023年浙江浙能蘭溪發(fā)電有限責(zé)任公司招聘筆試題庫(kù)及答案解析
- 全日制培智學(xué)校語(yǔ)文課件
- 大自然的聲音課件
- 大數(shù)據(jù)技術(shù)spark基礎(chǔ)實(shí)驗(yàn)指導(dǎo)書(shū)
- 二年級(jí)上冊(cè)語(yǔ)文課件-10.日月潭(共20張PPT)人教(部編版)
- 朗誦稿《我的南方和北方》
- 皮試及過(guò)敏處理培訓(xùn)課件
- 六年級(jí)上冊(cè)勞動(dòng) 全冊(cè)教案教學(xué)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論