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

下載本文檔

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

文檔簡介

《C#程序設(shè)計語言》

講義

目錄

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

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

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

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

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

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

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

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

ii.開始使用VS2005..................................................................................................................................................7

iii.從控制臺程序開始.......................................................................13

二、C#語法....................................................................................14

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

i.語句....................................................................................14

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

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

2、流程控制語句..............................................................................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ù)類:存值、單一、系統(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.類型中成員的訪問級別...................................................................37

ii.類型的訪問級別........................................................................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.方法的虛擬化和重寫....................................................................59

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

3、方法的高級應(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的主要特點[概念][記憶]

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

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

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

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

對于開發(fā)人員,.Net的主要特點有:

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

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

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

?各種高級功能的集成支持:

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

?多種開發(fā)語言的無縫交互支持:

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

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

?對移動設(shè)備的無縫支持

ii..NetFramework的概述

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

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

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

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

因此,所有.Net程序,必須運行在.NetFramework之上,沒有安裝.NetFramework的

機器是不能運行.Net程序!

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

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

基本的.NetFramework功能。

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

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

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

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

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

ASP.NetWindowsForms

ADO.Net和Xml

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

CLR(公共語言運行時)

WindowsCOM+Services

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

開發(fā)上,就是語法與類庫的使用。

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

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

對于C#的學(xué)習(xí),我們是學(xué)習(xí)它的語法,使用C#來編寫程序;對于BaseClass

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

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

iii..NetFramework的版本

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

?.NetFramework各個版本[概念][記憶]

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

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

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

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

?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#語言與.Net的關(guān)系

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

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

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

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

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

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

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

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

2、VS2005使用

i.VisualStudio與.Net

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

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

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

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

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

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

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

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

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

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

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

開始使用VS2005

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

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

編寫HelloWorld代碼[步驟][記憶]

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

運行HelloWorld程序[步驟][記憶]

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

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

新建控制臺項目[步驟][應(yīng)用]

項目的概念[概念][記憶]

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

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

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

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

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

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

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

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

下面是HelloWorld示例程序的運行界面:

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

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

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

現(xiàn)在我們開始一步步編寫這個HelloWorld程序:

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

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

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

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

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

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

classProgram

staticvoidMain(string[]args)

stringname;

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

name=System.Console.ReadLine();

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

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

System.Console.ReadLine();

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

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

是CSharp的縮略。

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

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

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

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

平臺代碼:

a)運行“開始”->“程序”->"MicrosoftVisualStudio2005M->Visual

StudioTools"的"VisualStudio2005命令提示”:

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

c)輸入“escHelloWorld.cs",并按回車。此時,就開始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)容完全正確,才會和圖片的內(nèi)容一致。否則會出現(xiàn)錯

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

寫。

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

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

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

“HelloWorld.exe”就可以運行。

這個就是我們編寫的第一個C#程序!

下面,我們使用VS2005來編寫、生成和運行我們的HelloWorld程序。

首先,我們運行"開始程序"-"MicrosoftVisualStudio2005"的"Microsoft

VisualStudio2005”來啟動VS2005:

下一步,我們建立一個新的VS2005的項目,

選擇“文件”菜單->“新建"項目…”:

??起的質(zhì)licrosoftVisualStudio

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

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

打開??*..

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

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

此時會出現(xiàn)“新建項目”對話框:

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

?項目類型:Windows

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

?名稱:He11World

?位置:D:\MyProjects

?解決方案名稱:MySolution

點擊“確定”后,就會生成MySolution的解決方案和HelloWorld的項目,它們位

置在D:\MyProjects的目錄下。

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

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

案可以包含一個或多個項目。

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

域。

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

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

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

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

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

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

下一步,我們在Program,cs里面,編寫同樣的HelloWorld程序。把Program,cs

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

classProgram

staticvoidMain(string[]args)

stringname;

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

name=System.Console.ReadLineO;

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

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

System.Console.ReadLine();

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

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

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

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

畫至成解決方運④F6

重新生成解決方案國)

清理解決方案C)

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

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

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

生成成功

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

并在里面能找到HelloWorld項目的目錄“H在里World”。在“H在里World”目錄里面,

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

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

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

需要,但對于我們沒有任何作用。)

當(dāng)然,VS2005非常強大,我們并不需要找到生成的exe雙擊后才能運行,我們在

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

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

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

窗口?)?

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

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

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

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

運峰“開始執(zhí)行(不調(diào)試)”后,就會運行HelloWorld程序,并在結(jié)束前增加“請

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

iii.從控制臺程序開始

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

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

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

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

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

型。由于控制臺程序的用戶交互形式簡單,在當(dāng)今最求視覺效果和用戶體驗的時代,它

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

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

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

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

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

下面,我們試著修改HelloWorld程序,改變它的行為。我們增加年齡的輸入和顯

力、O

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

classProgram

(

staticvoidMain(string[]args)

(

stringname;

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

name=System.Console.ReadLine();

stringage;

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

age=System.Console.ReadLine();

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

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

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

System.Console.ReadLine();

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

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

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

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

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

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

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

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

string(字符串)。

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

控制臺里面,輸入的年齡信息也是文字),所以使用加號(+)把兩個文字信息連起來。

、C#語法

1、基礎(chǔ)語法

i.語句

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

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

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

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

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

C#的語句要求。

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

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

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

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

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

如果程序由多條語句組成,就需要使用大括號({})括起來,組成語句塊。語句塊里

面可以包含其他語句塊。

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

便人的閱讀,我們可以增加注釋來說明代碼的意思。而注釋在源代碼生成的時候,會自

動被忽略掉,所以注釋對程序的執(zhí)行邏輯沒有任何影響。但代碼有了注釋的說明,會大

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

注釋分為兩種:

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

stringname;〃這個是保存名字的變量

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

容可以是多行。例如:

/*

這個是注釋的示例

它有多行

*/

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

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

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

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

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

?聲明語句[概念][記憶]

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

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

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

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

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

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

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

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

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

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

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

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

="歡迎來到CSTP”;。

提示:除了最簡單的程序外,我們都應(yīng)該使用常量而不是常數(shù),因為常量有批量修

改和表明意義的功能。

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

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

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

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

告訴程序存在的語句,稱為聲明語句。

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

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

注意:如果變量或常量沒有聲明,使用它們的語句在生成的時候會出錯。

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

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

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

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

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

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

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

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

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

子語句塊。

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

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

/常量。

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

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

分析變量的變化:

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

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

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

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

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

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

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

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

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

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

iii.表達(dá)式

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

操作符主要有以下幾類:

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

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

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

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

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

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

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

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

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

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

(一)o

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

先級由C#語法決定,我們可以通過添加小括號來控制操作符之間的順序。

2、流程控制語句

iv.順序流程

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

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

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

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

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

分支流程

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

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

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

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

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

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

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

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

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

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

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

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

if語句的形式:

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

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

else

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

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

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

switch語句的形式:

switch(表達(dá)式)

case值1:

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

break;

case值2:

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

break;

case值n:

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

break;

default:

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

break;

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

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

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

vi.重復(fù)流程

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

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

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

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

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

?foreach語句及其形式[概念][記憶]

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

程。重復(fù)流程就是指在特定條件下,重復(fù)執(zhí)行一部分(一條或一個語句塊)語句??刂?/p>

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

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

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

語句和foreach語句。其中,while語句、do-while語句和for語句的使用,沒有任何

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

下都能使用foreach語句。

while語句的形式:

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

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

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

do-while語句的形式:

do

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

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

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

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

while(表達(dá)式)后說必須要有分號(;)。

for語句的形式:

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

true\false

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

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

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

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

式。

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

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

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

foreach語句的形式:

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

〃集合還有元素取出

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

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

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

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

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

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

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

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

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

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

循環(huán)。

vii.調(diào)用流程

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

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

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

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

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

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

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

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

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

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

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

i.概述

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

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

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

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

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

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

的數(shù)據(jù)、硬盤中的數(shù)據(jù)、數(shù)據(jù)庫中的數(shù)據(jù)、其他計算機通過網(wǎng)絡(luò)傳輸過來的數(shù)據(jù)等等。

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

溫馨提示

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

評論

0/150

提交評論