版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
C#語(yǔ)言全書(shū)電子教案
授課時(shí)間第次課,第周星期第節(jié)課時(shí)
授課方式理論課口討論課口習(xí)題課口實(shí)驗(yàn)課口上機(jī)課口技能課口其他口
授課題目第一章C#語(yǔ)言與開(kāi)發(fā)環(huán)境
1.了解C#語(yǔ)言發(fā)展的歷史和特點(diǎn)。
2.了解VS2013在Win7操作系統(tǒng)上的安裝和配置O
目的與要求
3.掌握VS2013的主要功能和開(kāi)發(fā)界面。
4.熟悉簡(jiǎn)單C#程序開(kāi)發(fā)的基本步驟。
重點(diǎn):C#語(yǔ)言機(jī)器特點(diǎn)、C#程序開(kāi)發(fā)
重點(diǎn)與難點(diǎn)難點(diǎn):熟悉VS2013工具的使用
教學(xué)基本內(nèi)容方法及手段
(-)C#語(yǔ)言
1.C#的歷史
C#是和.NETFramework及開(kāi)發(fā)環(huán)境VisualStudio一同成長(zhǎng)起來(lái)的。
2000年7月微軟公司發(fā)布了C#語(yǔ)言的第一個(gè)預(yù)覽版;
2002年2月,微軟公司推出.NETFramework1.0版和.NET開(kāi)發(fā)環(huán)境VisualStudio.NET2002,同時(shí)推
出C#1.0版;
2003年5月,微軟公司推出了.NETFramework1.1和VisualStudio.NET2003,同時(shí)也發(fā)布了C#1.1
版;
2005年10月,微軟公司推出了.NETFramework2.0和C#2.0版;
2005年11月,微軟公司發(fā)布VisualStudio2005正式版;
2006年11月,微軟公司發(fā)布.NETFramework3.0;
2007年8月,微軟公司發(fā)布C#3.0版;
2007年11月,微軟公司發(fā)布.NETFramework3.5和VisualStudio2008;
2010年,發(fā)布了C#4.0版本和.NETFramework4以及VisualStudio2010;
2012年,發(fā)布了C#5.0版本和.NETFramework4.5以及VisualStudio2012;
2013年,發(fā)布了.NETFramework4.5.1和VisualStudio2013;
2016年,發(fā)布了C#6.0版本和.NETFramework4.6以及VisualStudio2015。
2.C#的特點(diǎn)
C#繼承了C/C++的強(qiáng)大功能,并且拋棄了C/C++的復(fù)雜特性,同時(shí)又借鑒了Java的優(yōu)點(diǎn),具有安全、
穩(wěn)定、簡(jiǎn)單、優(yōu)雅的特點(diǎn)。C#具有功能強(qiáng)大、語(yǔ)法簡(jiǎn)潔、面向?qū)ο?、提供了完整的安全性、支持組件技術(shù)、
具有自動(dòng)內(nèi)存管理、良好的版本控制能力以及與Web緊密結(jié)合等優(yōu)點(diǎn)。
(1)語(yǔ)法簡(jiǎn)潔
C#語(yǔ)法類似于C++和Java,并進(jìn)行了簡(jiǎn)化,只保留了常見(jiàn)的形式。
(2)面向?qū)ο?/p>
C#采用了面向?qū)ο笤O(shè)計(jì)思想,它將復(fù)雜的問(wèn)題分解為一個(gè)個(gè)能夠完成獨(dú)立功能的相對(duì)簡(jiǎn)單的對(duì)象的集
合。C#具有面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言的所有特征,支持抽象、封裝、繼承、重載、多態(tài)等特性。
(3)可視化集成開(kāi)發(fā)環(huán)境
C#采用了可視化編程方式,用戶界面良好,采用拖放控件來(lái)設(shè)計(jì)界面,所見(jiàn)即所得,非常方便、高效。
VisualStudio是.NET平臺(tái)默認(rèn)的集成開(kāi)發(fā)環(huán)境,在這個(gè)環(huán)境中,可以進(jìn)行設(shè)計(jì)界面、編寫(xiě)代碼、調(diào)試、編
譯等工作。
(4)內(nèi)存管理
C#具有自動(dòng)內(nèi)存管理機(jī)制,系統(tǒng)會(huì)根據(jù)一定算法自動(dòng)回收不再被使用對(duì)象所占用的內(nèi)存。
(5)功能強(qiáng)大的類庫(kù)
,NET類庫(kù)內(nèi)容非常豐富,通過(guò)引用.NET類庫(kù)可以方便、高效地完成各種程序設(shè)計(jì)工作。.NET架構(gòu)
(.NETFramework)是當(dāng)前程序設(shè)計(jì)的主流體系之一,代表了程序設(shè)計(jì)技術(shù)發(fā)展的方向。.NET是個(gè)集合,
一個(gè)環(huán)境,一個(gè)可以作為平臺(tái)支持下一代Internet的可編程結(jié)構(gòu)。
(二)C腿言開(kāi)發(fā)工具
1.文本編輯工具
文本編輯工具有很多利如常用的記事本,這類工具大都非常簡(jiǎn)單,功能也有限,通常用來(lái)開(kāi)發(fā)C#
控制臺(tái)程序。
2.集成開(kāi)發(fā)工具
集成開(kāi)發(fā)環(huán)境通常是所見(jiàn)即所得的開(kāi)發(fā)工具,通常都功能強(qiáng)大。
(1)VisualStudio
使用集成開(kāi)發(fā)環(huán)境通常可通過(guò)拖放控件等方式自動(dòng)生成一些代碼,使開(kāi)發(fā)者更關(guān)注程序邏輯結(jié)構(gòu)的開(kāi)
發(fā),大大提高了程序的開(kāi)發(fā)效率?VisualStudio就是典型的集成開(kāi)發(fā)環(huán)境,功能非常強(qiáng)大,幾乎可以滿足
開(kāi)發(fā)者所有的需求。
(2)ShaipDevelop
SharpDevelop是一個(gè)輕量級(jí)的開(kāi)源免費(fèi)開(kāi)發(fā)工具,SharpDevelop支持多種程序語(yǔ)言,包括C#、Java
以及VB,同時(shí)還支持多種語(yǔ)言界面。
(3)EasyCSharp
EasyCSharp是另一個(gè)優(yōu)秀的C#程序集成開(kāi)發(fā)環(huán)境,使用簡(jiǎn)便,適合小型C#應(yīng)用程序的開(kāi)發(fā)。
(三)VisualStudio2013
VisualStudio2013內(nèi)置了多種提高工作效率的功能,如自動(dòng)補(bǔ)全方括號(hào)、快捷鍵移動(dòng)整行或整塊代碼
以及行內(nèi)導(dǎo)航。VisualStudio2013的團(tuán)隊(duì)資源管理器可以更簡(jiǎn)便地導(dǎo)航到團(tuán)隊(duì)協(xié)作功能。VS2013新功能
如下所述。
1.支持Windows8.1App開(kāi)發(fā)。VisualSludio2013提供的工具集非常適合Windows平臺(tái)創(chuàng)新的新式
應(yīng)用程序,同時(shí)在所有Microsoft平臺(tái)上支持設(shè)備和服務(wù)。
2.敏捷項(xiàng)目管理。提供敏捷項(xiàng)目組合管理,提高團(tuán)隊(duì)協(xié)作。
3.版本控制。VS一直在改進(jìn)自身的版本控制功能,包括TeamExplorer新增的Connect功能,可以同
時(shí)關(guān)注多個(gè)團(tuán)隊(duì)項(xiàng)目。
4.新增代碼信息指示。VS2013增強(qiáng)了提示功能,能在你編碼的同時(shí)幫你監(jiān)察錯(cuò)誤,并通過(guò)多種指示
器進(jìn)行提示。
5.測(cè)試完善。VS2013更進(jìn)一步完善了測(cè)試功能,新增了測(cè)試用例管理功能,能夠在不開(kāi)啟專業(yè)測(cè)試
客戶端的情況下進(jìn)行測(cè)試。
6.團(tuán)隊(duì)協(xié)作。VS2013中將新增“TeamRooms”來(lái)進(jìn)一步加強(qiáng)該特性,登記、構(gòu)建、代碼審查等一切操
作都將會(huì)被記錄下來(lái)。
7.整合微軟SystemCenterIT管理平臺(tái)。VisualStud沁2013還有團(tuán)隊(duì)工作室、身份識(shí)別、.NET內(nèi)存轉(zhuǎn)
儲(chǔ)分析儀、Git支持等特性。
(―)創(chuàng)建C#項(xiàng)目
VS2013開(kāi)發(fā)環(huán)境中的基本操作:創(chuàng)建項(xiàng)目,編寫(xiě)項(xiàng)目,編譯項(xiàng)目和調(diào)試項(xiàng)目。
1.創(chuàng)建項(xiàng)目
選擇“文件”一“新建”一“項(xiàng)目”菜單項(xiàng),將彈出“新建項(xiàng)目”對(duì)話框。
(1)Windows窗體應(yīng)用程序:創(chuàng)建一個(gè)窗口程序。
(2)類庫(kù):創(chuàng)建VisualStudio中的.NET框架類庫(kù)。
(3)ASP.NETWeb應(yīng)用程序、ASP.NETWeb服務(wù)應(yīng)用程序:用于創(chuàng)建Web應(yīng)用程序。
(4)控制臺(tái)應(yīng)用程序:創(chuàng)建使用字符界面的應(yīng)用程序。
2.編寫(xiě)工程
控制臺(tái)應(yīng)用程序:在Main方法中編寫(xiě)代碼。
窗體應(yīng)用程序:在設(shè)計(jì)圖中向Form1添加控件,編寫(xiě)代碼。
3.編譯工程
選擇“生成”一“生成解決方案”菜單項(xiàng),將對(duì)項(xiàng)目進(jìn)行編譯。如果編譯成功,則在底部的“輸出”
窗口中輸出。
選擇“生成”一“重新生成解決方案”菜單項(xiàng),將過(guò)去生成的結(jié)果刪除掉,然后再生成新的應(yīng)用程序。
4.調(diào)試方案
單擊工具欄中的“啟動(dòng)”按鈕,運(yùn)行程序。
選擇“調(diào)試”一“啟動(dòng)調(diào)試”菜單項(xiàng)(或直接按F5鍵),啟動(dòng)調(diào)試功能。按CTRL+F5是不調(diào)試運(yùn)行
程序。
選擇“調(diào)試”一“逐語(yǔ)言”菜單項(xiàng)(或直接按F11鍵),啟動(dòng)逐語(yǔ)句調(diào)試功能。
(二)簡(jiǎn)單的C#編程語(yǔ)法
1.C#程序結(jié)構(gòu)
最簡(jiǎn)單的C#程序由一個(gè)命名空間構(gòu)成,該命名空間中包含一個(gè)類。對(duì)于復(fù)雜的C#程序可以包含多個(gè)
命名空間,在每個(gè)命名空間中可以包含多個(gè)類。
2.大小寫(xiě)的敏感性
C#是一種時(shí)大小寫(xiě)敏感的語(yǔ)言,同名的大寫(xiě)和小寫(xiě)代表不同的對(duì)象,因此在輸入關(guān)鍵字、變量和函數(shù)
時(shí)必須使用適當(dāng)?shù)淖址?/p>
C#的關(guān)鍵字基本上采用小寫(xiě),如if、for,while等。定義變量時(shí),私有變量的定義一般都以小寫(xiě)字母
開(kāi)頭,而公共變量的定義則以大寫(xiě)字母開(kāi)頭。
3.注釋
在程序開(kāi)發(fā)中,注釋也是非常重要的。C#提供了以下兩種注釋類型。
(1)單行注釋,注釋符號(hào)是
(2)多行注釋,注釋符號(hào)是“/*”和“*/”。
此外XML注釋符號(hào)“///”也可以用來(lái)對(duì)C#程序進(jìn)行注釋。
4.語(yǔ)句終止符
每一句C#程序都要以語(yǔ)句終止符來(lái)終結(jié),C#的語(yǔ)句終止符是
在C#程序中,可以在一行中寫(xiě)多個(gè)語(yǔ)句,但每個(gè)語(yǔ)句都要以“;”結(jié)束,也可以在多行中寫(xiě)一個(gè)語(yǔ)句,
但是在最后一行以結(jié)束。
5.語(yǔ)句塊
在C#程序中,用符號(hào)“{”和“}”包含起來(lái)的程序稱為語(yǔ)句塊。語(yǔ)句塊在條件和循環(huán)語(yǔ)句中經(jīng)常會(huì)
用到,主要是把重復(fù)使用的程序語(yǔ)句放在一起以方便使用,這樣有助于程序的結(jié)構(gòu)化。例如:
這段代碼用來(lái)求100以內(nèi)的所有偶數(shù)的和。
intsum=0;
for(inti=l;i<=100;i++)
(
if(i%2==0)
(
Sum=sum+i
}
)
6.using語(yǔ)句
一般每個(gè)程序的頭部都有一條或若干條"using…”語(yǔ)句,作用是導(dǎo)入命名空間,該語(yǔ)句類似于C和
C++中的#include命令。導(dǎo)入命令空間之后,就可以自由地使用其中的元素了。
(1)定義命名空間。命名空間是為了避免程序命名的沖突而采取的措施。使用“namespace”關(guān)鍵字
定義命名空間。其格式如下。
namespace命名空間名
花括號(hào)中的所有代碼都被認(rèn)為是在這個(gè)命名空間中。編譯器將可以使用在using指令指定的命名空間
中的資源。
(2)指定別名。using關(guān)鍵字的另一個(gè)用途是給類和命名空間指定別名,其語(yǔ)法如下:
usingalias=NamespaceName;
(三)控件、屬性、方法和事件
1.控件
C#控件是窗體中具有特定功能的元素,或者說(shuō)是C#窗體的各類功能單元。
.NET控件是一個(gè)特定的功能單元,每個(gè)控件都有自己特定的屬性和方法,并且都可以響應(yīng)特定的事
件。
2.屬性
控件屬性是控件所具有的一組特征,這些特征描述了控件的名稱、位置、顏色、大小等信息,用戶可
以改變這些特征從而改變控件的狀態(tài)。
3.方法
方法是控件所具有的功能或操作,有些方法有參數(shù),使用時(shí)要將參數(shù)置于方法后的括號(hào)中,但方法后
的括號(hào)不能省略。
4.事件和事件驅(qū)動(dòng)
在Windows窗體應(yīng)用程序中經(jīng)常會(huì)發(fā)生一些操作,如單擊、按鍵、窗體被裝載等,這些操作稱為事
件。事件的本質(zhì)是對(duì)象在發(fā)生了某些動(dòng)作時(shí)發(fā)出的信息,而對(duì)發(fā)生的事件做出響應(yīng)稱為事件處理,事件處
理是通過(guò)編寫(xiě)特定的程序代碼來(lái)實(shí)現(xiàn)的。
思考題、
作業(yè)、參
考文獻(xiàn)
課后
本章重點(diǎn)介紹VisualStudio2013開(kāi)發(fā)環(huán)境的安裝和使用,以及C#程序在VS2013環(huán)境
小結(jié)上的開(kāi)發(fā)。C#語(yǔ)言開(kāi)發(fā)程序主要有控制臺(tái)程序和Windows應(yīng)用程序。
授課時(shí)間第______次課,第_____周星期_____第______節(jié)課時(shí)
授課方式理論課口討論課口習(xí)題課口實(shí)驗(yàn)課口上機(jī)課口技能課口其他口
授課題目第二章C#語(yǔ)言基礎(chǔ)
1.掌握C#語(yǔ)言的常量和變量的概念、定義和使用。
2.掌握C#語(yǔ)言的常用數(shù)據(jù)類型,熟悉數(shù)據(jù)類型的轉(zhuǎn)換和溢出。
目的與要求3.掌握C#語(yǔ)言中的常用運(yùn)算符。
4.熟悉表達(dá)式的概念和使用。
5.掌握C#語(yǔ)言的賦值運(yùn)算符。
重點(diǎn):C#的變量的定義和使用,C#常用數(shù)據(jù)類型、運(yùn)算符、賦值
重點(diǎn)與難點(diǎn)難點(diǎn):類型轉(zhuǎn)換、溢出
教學(xué)基本內(nèi)容方法及手段
(-)變量
變量是表示內(nèi)存地址的名稱。變量具有名稱、類型和值。變量名是變量在程序源代碼中的標(biāo)識(shí);變量
類型確定它所代表的內(nèi)存的大小和類型;變量值是指它所代表的內(nèi)存塊中的數(shù)據(jù)。
在程序的執(zhí)行過(guò)程中,變量的值可以發(fā)生變化。使用變量之前必須先聲明變量,即指定變量的類型和
名稱。
(-)類型
C#是面向?qū)ο笳Z(yǔ)言,它的所有數(shù)據(jù)類型都是類。在C#中,既可以使用通過(guò)類型系統(tǒng)定義的基本類型,
也可以使用自定義類型。所有C#類型都是從System.Object類派生來(lái)的。
1.類型概括
C#語(yǔ)言的類型劃分為兩大類:引用類型和值類型。C#類型如表2-1所示。
表2-1C#類型系統(tǒng)
類別說(shuō)明
值類型簡(jiǎn)單類型有符號(hào)整型:sbyte,short,int,long
無(wú)符號(hào)整型:byte,ushort,uint,ulong
Unicode字符:char
IEEE浮點(diǎn)型:float,double
高精度小數(shù):decimal
布爾型:bool
枚舉類型enumE{…}形式的用戶定義的類型
結(jié)構(gòu)類型StructS{?-?}形式的用戶定義的類型
引用類型類類型所有其它類型的最終基類:objeci
Unicode字符串:string
classC{???)形式的用戶定義的類型
接口類型interfaceI{??-)形式的用戶定義的類型
數(shù)組類型一維和多維數(shù)組,例如int口和int[,]
委托類型delegateTD(---)形式的用戶定義的類型
類別說(shuō)明
值類型簡(jiǎn)單類型有符號(hào)整型:sbyte,short,int,long
無(wú)符號(hào)整型:byte,ushort,uint,ulong
Unicode字符:char
IEEE浮點(diǎn)型:float,double
高精度小數(shù):decimal
布爾型:bool
枚舉類型enumE{???)形式的用戶定義的類型
結(jié)構(gòu)類型StructS{???)形式的用戶定義的類型
引用類型類類型所有其它類型的最終基類:object
Unicode字符串:string
classC(-)形式的用戶定義的類型
接口類型interfaceI)?,?)形式的用戶定義的類型
數(shù)組類型一維和多維數(shù)組,例如int口和int[,]
委托類型delegateTD(-)形式的用戶定義的類型
值類型與引用類型的區(qū)別如下。
(1)值類型的變量直接包含數(shù)據(jù),而引用類型的變量存儲(chǔ)是對(duì)數(shù)據(jù)的引用(reference),后者稱為對(duì)
象(object)。
(2)對(duì)于引用類型,兩個(gè)變量可能引用同一個(gè)對(duì)象,因此對(duì)一個(gè)變量的操作可能影響另一個(gè)變量所
引用的對(duì)象。對(duì)于值類型,每個(gè)變量都有自己的數(shù)據(jù)副本,對(duì)一個(gè)變量的操作不可能影響另一個(gè)變量。
2.引用類型
引用類型是C#中的主要類型,引用類型變量中存放的是對(duì)象的內(nèi)存地址,對(duì)象的值存儲(chǔ)在這個(gè)地址
指不的內(nèi)存中。
所有“類”都是引用類型,主要包括類、接口、數(shù)組和委托。使用引用類型對(duì)象時(shí),首先要在托管堆
中分配內(nèi)存,不再需要對(duì)象時(shí),由垃圾回收器釋放。
3.值類型
值類型變量用來(lái)存放值,在堆棧中進(jìn)行分配,訪問(wèn)值類型變量時(shí),一般都是直接訪問(wèn)其實(shí)例。使用值
類型的主要目的是為了提高性能。
4基本類型
編譯器直接支持的類型叫做基本類型,C#的基本類型實(shí)際上都是.NET框架類庫(kù)中的CTS類型的映射,
都是從System.Object派生而來(lái)的類。C#基本類型如表2-2所示。
表2-2基本類型
類型描述
object所有CTS類型的基類
string字符串
sbyte有符號(hào)8-bit字節(jié),取值范圍介于128-127之間
byte無(wú)符號(hào)8-bit字節(jié),取值范圍介于0-255之間
short有符號(hào)16-bit值,取值范圍介于-32768—32767之間
ushort無(wú)符號(hào)16-bit值,取值范圍介于0~65535之間
int有符號(hào)32-bit值,取值范圍介于-2147483648~2147483647之間
uint無(wú)符號(hào)32-bit值,取值范圍介于0-4294967295之間
long有符號(hào)64-bit值,
ulong無(wú)符號(hào)64-bit值,取值范圍介于0-18446744073709551615之間
char無(wú)符號(hào)16-bitUnicode字符,取值范圍介于0~65535之間
float32-bit浮點(diǎn)數(shù),精度為7位,取值范圍在1.5X10T5~34X10^^B]
double64-bit浮點(diǎn)數(shù),精度為15~16位,取值范圍SOXIOTM-I/ZXIO31?之間
bool布爾值(true/false)
decimaldecimal類型是適合財(cái)務(wù)和貨幣計(jì)算的128位數(shù)據(jù)類型
在基本類型中,object和string是引用類型,其余的類型都是值類型。object類類型是所有其它類型的
最終基類。string型縫直接從object繼承的密封類類型。string類的實(shí)例表示Unicode字符串。string類
型的值可以寫(xiě)為字符串。值類型的基本類型又稱為簡(jiǎn)單類型。
(1)整型
C#定義了8種整型,即sbyte、byte、short、ushort、int、uint、long、ulongo
(2)布爾型
布爾型(bool)有true和false兩個(gè)布爾值。
(3)字符型
字符型(char)的可能值集與Unicode字符集相對(duì)應(yīng)。雖然char的表示形式與ushort相同,但是它們
是兩種不同的類型,不能等價(jià)使用。字符型文本用一對(duì)單引號(hào)(')來(lái)識(shí)別,比如'A,。
要在字符文本中表示一些特殊字符,就需要使用轉(zhuǎn)義符。C#轉(zhuǎn)義符如表2-3所示。
表2-3轉(zhuǎn)義符
轉(zhuǎn)義符意義
\'單引號(hào)
雙引號(hào)
\\反斜杠
\0空字符
\a感嘆號(hào)
\b退格
\f換頁(yè)
\n新行
\r回車
\t水平制表符
\v垂直制表符
\x后面跟四個(gè)十六進(jìn)制數(shù)字,表示一個(gè)ASCII字符
\u后面跟四個(gè)十六進(jìn)制數(shù)字,表示一個(gè)Unicode字符
(4)浮點(diǎn)型
浮點(diǎn)型包括float和double,它們的差別在于取值范圍和精度。浮點(diǎn)數(shù)以sXmX形式表示的非
零值的有限集合,其中s為1或-1,m和e由特定的浮點(diǎn)型確定:對(duì)于float,為0<m<2"和一i49We
W104,對(duì)于double,則為0<m<2s3和_1075WeW970。非標(biāo)準(zhǔn)化的浮點(diǎn)數(shù)被視為有效非零值。
(5)decimal型
decimal型是一種高精度、128位的數(shù)據(jù)類型,用于金融和貨幣的計(jì)算。它能表示28至29位有效數(shù)字,
這里指的是位數(shù)(digit)而不是小數(shù)位(decimalplace)?運(yùn)算準(zhǔn)確到28個(gè)小數(shù)位的最大值。
與浮點(diǎn)型相比,decimal類型具有較高的精度,但取值范圍較小。
當(dāng)使用文本來(lái)表示decimal型數(shù)值時(shí),必須使用m后綴,比如3.1415926m。如果省略了m,則會(huì)被編
譯器認(rèn)做double型。
(6)string型
string型用來(lái)表示字符串,即Unicode字符的連續(xù)集合,通常用于表示文本。string型是字符型(char)
對(duì)象的連續(xù)集合。string的值構(gòu)成該連續(xù)集合的內(nèi)容,并且該值是恒定的,就是說(shuō)字符串的值一旦創(chuàng)建就
不能再修改,除非重新給它賦值。
字符串需要用雙引號(hào)括起來(lái),比如下面的語(yǔ)句聲明了一個(gè)字符串,并初始化它的值。
strings="HelloWorld!
可以使用“+”來(lái)連接字符串,也可以使用“+”來(lái)連接字符串與其它基本類型,其它基本類型會(huì)先轉(zhuǎn)
換成字符串,再與字符串相連。
(7)object型
object型是C#中最基礎(chǔ)的類型,可以用它來(lái)表示任何類型的值。
(四)變量操作
變量名用來(lái)標(biāo)識(shí)變量,變量名必須符合一定的規(guī)則。對(duì)變量的基本操作包括聲明變量和給變量賦值。
1.聲明變量和變量的作用域
所謂聲明變量,就是指定變量的名稱和類型。簡(jiǎn)單的C#變量聲明由一個(gè)類型和跟在后面的一個(gè)或多
個(gè)變量組成,多個(gè)變量之間用逗號(hào)分開(kāi),聲明以分號(hào)結(jié)束。比如:
intcount;
doublex,y,z;
由一對(duì)大括號(hào)(“{”和“}”)括起來(lái)的一組語(yǔ)句叫做語(yǔ)句塊。語(yǔ)句塊是可以嵌套的,即語(yǔ)句塊內(nèi)還可
以包含其它的語(yǔ)句塊。每一個(gè)語(yǔ)句塊內(nèi)都可以聲明變量,這些變量叫做語(yǔ)句塊的局部變量。局部變量的作
用域是指聲明變量的語(yǔ)句塊內(nèi),位于聲明變量之后的區(qū)域。只有在其作用域內(nèi),局部變量才是有效的。
對(duì)于值類型變量來(lái)說(shuō),一旦離開(kāi)了其作用域,變量就會(huì)從堆棧中彈出,馬上被釋放。對(duì)于引用類型變
量來(lái)說(shuō),一旦離開(kāi)其作用域,它的對(duì)象就被公共語(yǔ)言運(yùn)用時(shí)標(biāo)記為“無(wú)效的”,但是不一定會(huì)被馬上釋放,
而是等到下一次垃圾收集時(shí)才會(huì)被垃圾回收器回收釋放。
C#的變量名是一種標(biāo)識(shí)符,應(yīng)該符合標(biāo)識(shí)符的命名規(guī)則?;镜淖兞棵?guī)則如下所示。
(1)變量名只能由字母、數(shù)字和下劃線組成;
(2)變量名的第一個(gè)符號(hào)只能是字母和下劃線,不能是數(shù)字;
(3)不能使用關(guān)鍵字來(lái)做變量名。
變量名最好能體現(xiàn)變量的含義和用途。變量名一般采用第一個(gè)字母小寫(xiě)的名詞,也可以采用多個(gè)詞構(gòu)
成的組合詞。如果變量名由多個(gè)詞組成,則從第一個(gè)詞之后的詞的第一個(gè)字母應(yīng)該大寫(xiě)。變量命名是編程
風(fēng)格的重要內(nèi)容。
通過(guò)聲明變量,編譯器將進(jìn)行如下的操作。
(1)給變量分配足夠的內(nèi)存,并將變量名與其內(nèi)存地址聯(lián)系起來(lái).
(2)保留變量名,使得同一作用域內(nèi)的變量不能再使用這個(gè)名稱。
(3)確保變量的使用方式與其類型始終保持一致。C#是一種類型安全的語(yǔ)言,C#編譯器保證存儲(chǔ)
在變量中的值總是具有合適的類型。
2.給變量賦值
C#使用賦值運(yùn)算符“="(等號(hào))來(lái)給變量賦值,將等號(hào)右邊的值賦給左邊的變量。比如:
intcount;
count=20;//將值20賦值給變量count
等號(hào)的右邊也可以是一個(gè)已經(jīng)被賦值的變量。當(dāng)被賦值的變量是值類型時(shí),就將右邊變量的值賦值給
左邊的變量;當(dāng)被賦值的變量是引用類型時(shí),就將右邊變量的對(duì)象賦值給左邊的變量。比如:
intcount,num;
count=20;//將值20賦值給變量count
num=count;〃將count的值賦給變量num
stringname,userid;
name="Mary";〃將"Mary”賦值給name
userid=name;〃將對(duì)象name賦值給對(duì)象userid
C#是類型安全的語(yǔ)言,因此,當(dāng)給一個(gè)變量賦值時(shí),值的類型必須滿足下列情形之一:
(1)與變量的類型相同。
(2)是一個(gè)C#將執(zhí)行賦值轉(zhuǎn)換的類型。
(3)是一個(gè)可以顯式轉(zhuǎn)換為正確類型的類型。
使用變量的一個(gè)基本原則是:先明確賦值后使用。已經(jīng)初始化和進(jìn)行了賦值操作的變量都是已經(jīng)明確
賦值的。
(五)常量
常量就是其值固定不變的量,而且常量的值在編譯時(shí)就己經(jīng)確定。常量的類型只能為下列類型之一:
sbyte、byte、short、ushort、int>uint、long>ulong>char、float、double,decimal、bool、string或者枚舉
類型。
C#有兩種不同的常量,即文本常量和符合常量。文本常量就是輸入到程序中的值,比如10、10.5、“Mary”
等;符合常量與變量相似,也是代表內(nèi)存地址的名稱。與變量不同的是,符合常量的值在定義之后就不能
改變了。比如。
constdoublePI=3.1415926;
conststringCompanyName="AbeSoftware^^;
(一)類型轉(zhuǎn)換
類型轉(zhuǎn)換就是將一種類型當(dāng)做另一種類型來(lái)使用。轉(zhuǎn)換可以是隱式轉(zhuǎn)換和顯式轉(zhuǎn)換。
1.隱式轉(zhuǎn)換
隱式轉(zhuǎn)換就是系統(tǒng)默認(rèn)的、不需要加以聲明就能進(jìn)行的轉(zhuǎn)換。隱式轉(zhuǎn)換一般不會(huì)失敗,也不會(huì)導(dǎo)致信
息丟失。
隱式數(shù)值轉(zhuǎn)換包括:
(1)從sbyte至!Jshort、int>long>floatdouble或decimal。
(2)從byte至Ushort、ushort>int>uint>long、ulong>float>double或decimal。
(3)從short至int、long>floatdouble或decimal。
(4)從ushort至I」int、uint>long、ulong^float、double或decimal。
(5)從int至!Jlong、float、double或decimalo
(6)從uint至Ijlong、ulong、floatdouble或decimal。
(7)從long到float>double或decimalo
(8)從ulong到float>double或decimal0
(9)從char至ushorl、int^uint^long>ulong>float、double或decimal。
(10)從float至!Jdouble。
各種值類型之間的隱式轉(zhuǎn)換關(guān)系如表2-4所示。
表2-4值類型之間的隱式轉(zhuǎn)換
示
sbytebyteshortushortintuintlongcharfloatulongdecimaldouble
sbyteJXJXJXJXJXVX
byteXVJJJVJXJJVX
shortXXJXJXJXJXVJ
ushortXXXJJJJXJVVJ
intXXXXJXJXVXJV
uintXXXXXVJXJJJJ
longXXXXXXJXJXJJ
charXXXJJVJVJJJJ
floatXXXXXXXXVXXJ
ulongXXXXXXXXJVVJ
2.顯式轉(zhuǎn)換
顯式轉(zhuǎn)換也稱為強(qiáng)制性轉(zhuǎn)換,需要在代碼中明確地聲明要轉(zhuǎn)換的類型。如果要在不存在隱式轉(zhuǎn)換的類
型之間進(jìn)行轉(zhuǎn)換,就需要使用顯式轉(zhuǎn)換。顯式轉(zhuǎn)換并不總是安全的,可能會(huì)導(dǎo)致信息丟失。
由于顯式轉(zhuǎn)換包括所有隱式和顯式數(shù)值轉(zhuǎn)換,因此總是可以使用強(qiáng)制轉(zhuǎn)換表達(dá)式從任何數(shù)值類型轉(zhuǎn)換
為任何其它的數(shù)值類型。
數(shù)值類型之間的顯式轉(zhuǎn)換關(guān)系如表2-5所示。
表2-5值類型之間的顯式轉(zhuǎn)換
sbytebyteshortushortintuintlongcharfloatulongdecimaldouble
sbyteJJXJJXVVXXXX
byteVJXXXXXJXXXX
shortJJVJXJJJXXXX
ushortVJVJXXXJXXXX
intVJJJJJXVXVXX
uintVJVVJJXJXXXX
longJJJJJJJJXVXX
charJJVXXXXJXXXX
floatJJJVJJJJJJJX
□longJJJJJJJJXJXX
doubleJJVJJJJJVJJJ
decimalJJJJVJJJJVJV
(-)運(yùn)算符
C#語(yǔ)言中的表達(dá)式類似于數(shù)學(xué)運(yùn)算中的表達(dá)式,是由操作符、操作對(duì)象和標(biāo)點(diǎn)符號(hào)等連接而成的式子。
最簡(jiǎn)單的表達(dá)式是空表達(dá)式,它不起任何作用但仍然是一個(gè)合法的表達(dá)式。但絕大多數(shù)表達(dá)式都需要使用
操作符來(lái)進(jìn)行運(yùn)算。
表達(dá)式由操作數(shù)(即操作對(duì)象)和操作符組成。操作數(shù)可以是一個(gè)變量、常量或另一個(gè)表達(dá)式,操作
符則指明了作用于操作數(shù)的操作方式。
一元操作符:作用于一個(gè)操作數(shù)的操作符,又可以分為前綴操作符和后綴操作符,使用時(shí)分別放置于
操作數(shù)的前面和后面。
二元操作符:作用于兩個(gè)操作數(shù)的操作符,使用時(shí)放在兩個(gè)操作數(shù)之間。
三元操作符:作用于三個(gè)操作數(shù)的操作符。
C#運(yùn)算符(operator)用于在表達(dá)式中對(duì)一個(gè)或多個(gè)操作數(shù)進(jìn)行計(jì)算并返回結(jié)果值。接受一個(gè)操作數(shù)
的運(yùn)算符稱作一元運(yùn)算符。接受兩個(gè)操作數(shù)的運(yùn)算符稱作二元運(yùn)算符,如算術(shù)運(yùn)算符+、-、*、/。接受三
個(gè)操作數(shù)的運(yùn)算符稱作三元運(yùn)算符,條件運(yùn)算符?:是C#中唯一的三元操作符。
當(dāng)表達(dá)式包含多個(gè)運(yùn)算符時(shí),運(yùn)算符的優(yōu)先級(jí)控制各運(yùn)算符的計(jì)算順序。
(二)算術(shù)運(yùn)算符
算術(shù)運(yùn)算符兩邊的操作應(yīng)是數(shù)值型。若是字符型,則自動(dòng)轉(zhuǎn)換呈字符所對(duì)應(yīng)的ASCII碼值后再進(jìn)行運(yùn)
算。算術(shù)運(yùn)算符如表2-6所示。
表2-6算術(shù)運(yùn)算符
運(yùn)算符含義說(shuō)明優(yōu)先級(jí)
++增量操作數(shù)加11
—減量操作數(shù)減一1
4-一元加操作數(shù)的值2
-一元減操作數(shù)的相反數(shù)2
*乘法操作數(shù)的積3
/除法第二個(gè)操作數(shù)除第一個(gè)操作數(shù)3
%模數(shù)第二個(gè)操作數(shù)除第一個(gè)操作數(shù)后的余數(shù)3
+加法兩個(gè)操作數(shù)之和4
-減法從第一個(gè)操作數(shù)中減去第二個(gè)操作數(shù)4
增量運(yùn)算符(++,--)可以出現(xiàn)在操作數(shù)之前(++variable、--variable)或者之后(variable++、variable-)o
(=)關(guān)系和類型測(cè)試運(yùn)算符
關(guān)系和類型測(cè)試運(yùn)算符如表2-7所示。
表2-7關(guān)系和類型測(cè)試運(yùn)算符
運(yùn)算符含義
==相等
1=不等
>大于
>=大于等于
<小于
<=小于等于
xisT數(shù)據(jù)x是否屬于T
xasT返回轉(zhuǎn)換為類型T的x不是T返回null
注意:
關(guān)系運(yùn)算符的優(yōu)先級(jí)相同.
對(duì)于兩個(gè)預(yù)定義的數(shù)值類型,關(guān)系運(yùn)算符按照操作數(shù)的數(shù)值大小進(jìn)行比較。
對(duì)于string類型,關(guān)系運(yùn)算符比較字符串的值,即按字符的ASCH碼值從左到右一一比較:首先比較
兩個(gè)字符串的第一個(gè)字符,其ASCII碼值大的字符串大,若第一個(gè)字符相等,則繼續(xù)比較第二個(gè)字符,以
此類推,直至出現(xiàn)不同的字符為止.
(四)邏輯運(yùn)算符
邏輯運(yùn)算符如表2-8所示。
表2-8邏輯運(yùn)算符
運(yùn)算符含義說(shuō)明優(yōu)先級(jí)
當(dāng)操作數(shù)為False時(shí),返回True;當(dāng)操作數(shù)
!邏輯非1
為T(mén)rue時(shí)返回False
兩個(gè)操作數(shù)均為T(mén)rue時(shí),結(jié)果才為T(mén)rue,
&邏輯與2
否則為False
兩個(gè)操作數(shù)不相同,即一個(gè)為T(mén)rue一個(gè)為
A邏輯異或3
False時(shí),結(jié)果才為T(mén)rue,否則為False
兩個(gè)操作數(shù)中有一個(gè)為T(mén)rue時(shí),結(jié)果即為
1邏輯或4
True,否則為False
兩個(gè)操作數(shù)均為T(mén)rue時(shí),結(jié)果才為T(mén)rue。
&&條件與5
僅在必要時(shí)才計(jì)算第二個(gè)操作數(shù)
兩個(gè)操作數(shù)中有?個(gè)為T(mén)rue時(shí),結(jié)果即為
II條件或6
True。僅在必要時(shí)才計(jì)算第二個(gè)操作數(shù)
(五)字符串運(yùn)算符
C#提供的字符串運(yùn)算符只有“+”,用于串聯(lián)(拼接)兩個(gè)字符串。
當(dāng)其中的一個(gè)操作數(shù)是字符串類型或兩個(gè)操作數(shù)都是字符串類型時(shí).,二元“+”運(yùn)算符執(zhí)行字符串串
聯(lián)。當(dāng)字符串串聯(lián)運(yùn)算中,如果它的一個(gè)操作數(shù)為null,則用空字符串來(lái)替換此操作數(shù)。否則,任何非字
符串參數(shù)都通過(guò)調(diào)用從。bject類型繼承的虛ToString方法,轉(zhuǎn)換為它的字符串表示形式。如果ToString返
回null,則替換成空字符串。
(六)位運(yùn)算符
位運(yùn)算符如表2-9所示。
表2-9位運(yùn)算符
運(yùn)算符含義優(yōu)先級(jí)
?按位求補(bǔ)1
?左移2
?右移2
&按位邏輯與3
A按位邏輯異或4
1按位邏輯或5
(七)其它運(yùn)算符
sizeof用于獲取值類型的字節(jié)大小,僅適用于值類型,而不適用于引用類型。sizeof運(yùn)算符只能在不
安全代碼塊中使用。
typedef用于獲取類型的System.Type對(duì)象,如System.Typetype=typeof(int);o
若要獲取表達(dá)式的運(yùn)行時(shí)類型,可以使用.NETFramework方法GetType。。
條件運(yùn)算符
邏輯表達(dá)式?表達(dá)式1:表達(dá)式2;
首先計(jì)算“邏輯表達(dá)式”的值,如果True,則運(yùn)算結(jié)果為“表達(dá)式1”的值,否則運(yùn)算結(jié)果為“表達(dá)
式2”的值。
計(jì)算a和b兩個(gè)數(shù)中較大的數(shù),并將其賦給變量max。
max=(a>b)?a:b;
(-)簡(jiǎn)單賦值語(yǔ)句
賦值運(yùn)算符是符號(hào)“=",它的作用是將一個(gè)數(shù)據(jù)賦給一個(gè)變量。由賦值運(yùn)算符將一個(gè)變量和一個(gè)表達(dá)
式連接起來(lái)的式子稱為賦值表達(dá)式。賦值表達(dá)式的一般形式如下:
變量=表達(dá)式
其作用是把賦值運(yùn)算符右邊表達(dá)式的值賦給賦值運(yùn)算符左邊的變量。例如:
a=l;
b=a;
a=b=c=2;
c=b+a;
注意:
1.賦值運(yùn)算后,變量原來(lái)的值被表達(dá)式的值替換。
2.賦值表達(dá)式的值也就是賦值運(yùn)算符左邊變量得到的值,如果右邊表達(dá)式的值的類型與左邊變量的類
型不一致,以左邊變量的類型為基準(zhǔn),將右邊表達(dá)式的值的類型無(wú)條件的轉(zhuǎn)換為左邊變量的類型,相應(yīng)的
賦值表達(dá)式的值的類型與被賦值的變量的類型一致。
3.賦值運(yùn)算符的優(yōu)先級(jí)很低,僅高于逗號(hào)運(yùn)算符。結(jié)合方向?yàn)椤皬淖蟮接摇薄?/p>
(二)復(fù)合賦值語(yǔ)句
為使程序書(shū)寫(xiě)簡(jiǎn)潔和便于代碼優(yōu)化,可在賦值運(yùn)算符的前面加上其它常用的運(yùn)算符,構(gòu)成復(fù)合賦值運(yùn)
算符,相應(yīng)地,由復(fù)合賦值運(yùn)算符也可構(gòu)成賦值表達(dá)式。復(fù)合賦值運(yùn)算符如表2-10所示。
表2-10賦值運(yùn)算符
運(yùn)算符含義舉例等效于
+=加法賦值sum+=itemsum=sum+item
-=減法賦值count+=1count=count+l
*=乘法賦值x*=y+5x=x*(y+5)
/=除法賦值x/=y-zx=x/(y-z)
%=取模賦值x%=2x=x%2
?=左移賦值x?=yx=x?y
?=右移賦值x?=yx=x?y
&=與賦值x&=5>3x=x&(5>3)
1=或賦值x|=truex=x|true
A=異或賦值xA=yx=xAy
思考題、
作業(yè)、參
考文獻(xiàn)
C#中的數(shù)據(jù)類型分為值類型和引用類型,其中值類型又包括整數(shù)類型、布爾類型、實(shí)數(shù)
類型、結(jié)構(gòu)類型和枚舉類型;而引用類型包括類、接口、代表和數(shù)組。值類型的變量總是直
接包含著自身的數(shù)據(jù),而引用類型的變量是指向?qū)嶋H數(shù)據(jù)的地址。
C#規(guī)定,在特定的值類型之間以及引用類型之間可以進(jìn)行隱式或顯式的類型轉(zhuǎn)換,能夠
課后以面向?qū)ο蟮姆绞絹?lái)處理一切數(shù)據(jù)類型。
小結(jié)類型的實(shí)例根據(jù)其使用方式的不同,可以分為常量和變量。常量和變量都必須先定義后
使用。
表達(dá)式主要包括:算術(shù)表達(dá)式、賦值表達(dá)式、關(guān)系表達(dá)式、條件邏輯表達(dá)式等。通過(guò)對(duì)
這些操作符和表達(dá)式的靈活應(yīng)用,能夠滿足大多數(shù)情況下數(shù)據(jù)運(yùn)算和處理的要求。
授課時(shí)間第_____次課,第_____周星期_____第______節(jié)課時(shí)
授課方式理論課口討論課口習(xí)題課口實(shí)驗(yàn)課口上機(jī)課口技能課口其他口
授課題目第三章程序控制
1.掌握C#語(yǔ)言中的輸入輸出語(yǔ)句。
目的與要求2.了解程序控制的概念,掌握選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)的實(shí)現(xiàn)。
3.掌握跳轉(zhuǎn)語(yǔ)句和嵌套循環(huán)的使用。
重點(diǎn):程序控制的實(shí)現(xiàn)語(yǔ)句
重點(diǎn)與難點(diǎn)難點(diǎn):for和whle語(yǔ)句
教學(xué)基本內(nèi)容方法及手段
(一)輸入輸出
C#控制臺(tái)程序一般使用.NETFrameworkConsole類提供的輸入、輸出服務(wù)。輸出有Write、WriteLine
方法,輸入有Read、ReadLine和ReadKey方法。
Console.WriteLine()方法是將要輸出的字符串與換行控制字符一起輸出,當(dāng)語(yǔ)句執(zhí)行完畢時(shí),光標(biāo)會(huì)移
到目前輸出字符串的下一行;至于Console.Write。方法,光標(biāo)會(huì)停在輸出字符串的最后一個(gè)字符后,不會(huì)移
動(dòng)到下一行。
注意:Console類是System命名空間的成員。如果程序開(kāi)頭沒(méi)有包含usingSystem;語(yǔ)句,則必須指定
System類。
(二)控制臺(tái)輸出
1.輸出字符串
WriteLine可輸出字符串。
Console.WriteLine("HelloWorld!");
2.輸出數(shù)字
WriteLine也可輸出數(shù)字。
intx=100;
Console.WriteLine(x);
3.輸出若干個(gè)項(xiàng)
WriteLine還可以一次輸出多
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 健康沙龍課程設(shè)計(jì)
- 課程設(shè)計(jì)茯苓提取
- 給排水課程設(shè)計(jì)雨污水
- 色彩單元課程設(shè)計(jì)對(duì)比色
- 2021-2022學(xué)年江西撫州七校聯(lián)考高一物理第二學(xué)期期末學(xué)業(yè)質(zhì)量監(jiān)測(cè)試題含解析
- 包裝設(shè)計(jì) 課程設(shè)計(jì)
- 伊春市五營(yíng)區(qū)2024年三年級(jí)數(shù)學(xué)第一學(xué)期期末考試試題含解析
- lc振蕩器課課程設(shè)計(jì)
- 2024年山東省東營(yíng)市墾利縣數(shù)學(xué)三年級(jí)第一學(xué)期期末達(dá)標(biāo)測(cè)試試題含解析
- 兒童美術(shù)雙語(yǔ)課程設(shè)計(jì)
- 預(yù)防打架斗毆教育課件
- 軟件開(kāi)發(fā)成果移交單
- 汽車試驗(yàn)測(cè)試技術(shù)課件
- 廣告策劃實(shí)訓(xùn)教程 課件 項(xiàng)目1、2 廣告策劃概述、廣告策劃工具概述
- 環(huán)衛(wèi)公司管理制度
- 虛擬現(xiàn)實(shí)技術(shù)的歷史和發(fā)展課件
- 2024年動(dòng)脈血管閉合器行業(yè)分析報(bào)告及未來(lái)發(fā)展趨勢(shì)
- 護(hù)理小講課泌尿外科
- 潤(rùn)滑油添加劑未來(lái)發(fā)展趨勢(shì)報(bào)告
- 甬溫線特大高速鐵路交通事故工程倫理分析
- 老年甲狀腺功能低下講課課件
評(píng)論
0/150
提交評(píng)論