第4章C#語言基礎(chǔ)_第1頁
第4章C#語言基礎(chǔ)_第2頁
第4章C#語言基礎(chǔ)_第3頁
第4章C#語言基礎(chǔ)_第4頁
第4章C#語言基礎(chǔ)_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1第4章 C#語言基礎(chǔ)語言基礎(chǔ) 2本章要點(diǎn)及學(xué)時(shí)安排 熟悉C#中簡單的數(shù)據(jù)類型和操作符 熟悉C#中三種控制語句 了解C#于其他語言的關(guān)系 了解異常處理的方法 本章授課學(xué)時(shí)為2學(xué)時(shí) 練習(xí)和上機(jī)學(xué)時(shí)為1學(xué)時(shí)-本章要點(diǎn)-學(xué)時(shí)安排3教學(xué)內(nèi)容 C#語言基礎(chǔ) C#語言的數(shù)據(jù)類型 C#語言的運(yùn)算符 C#語言的控制語句 C#語言與其他語言的關(guān)系 44.1 C#簡介簡介 C#語言自C/C+演變而來,是一種簡潔、類型安全的面向?qū)ο蟮木幊陶Z言。它簡化和現(xiàn)代化了C+在類、名字空間、方法重載和異常處理等領(lǐng)域。同時(shí),C#也借鑒了Java語言的許多優(yōu)點(diǎn)。 C#是Microsoft為.NET平臺量身定做的新的程序語言,可以用

2、來構(gòu)建在.NET Framework上運(yùn)行的各種安全、可靠的應(yīng)用程序。 C#的新功能包括嚴(yán)格的類型安全、版本控制、垃圾收集等,所有這些功能都瞄準(zhǔn)了開發(fā)面向組件的軟件。54.2 數(shù)據(jù)類型 C#的數(shù)據(jù)類型主要有兩類:值類型(value type)和引用類型(reference type)。 值類型包括簡單類型(整型、浮點(diǎn)型和布爾型等)、枚舉類型和結(jié)構(gòu)類型。引用類型包括對象類型、類類型、接口類型、代表類型、字符串類型和數(shù)組類型等。 值類型和引用類型的不同之處是值類型的變量值直接包含數(shù)據(jù),而引用類型的變量不存儲他們代表的實(shí)際數(shù)據(jù),而是存儲對實(shí)際數(shù)據(jù)的引用。64.2.1值類型中的簡單類型 簡單類型 整型

3、浮點(diǎn)型小數(shù)型布爾型 特點(diǎn)在C#中出現(xiàn)的簡單類型共享一些特性。第一,它們都是.NET系統(tǒng)類型的別名,例如:int就是System.Int32的別名。第二,由簡單類型組成的常量表達(dá)式僅在編譯時(shí)而不是運(yùn)行時(shí)受檢測。最后,簡單類型可以按字面被初始化,例如int a=5,則a即被初始化賦值為5。74.2.1值類型中的簡單類型1、整型:根據(jù)計(jì)算機(jī)中表示整數(shù)的長度及整數(shù)是否具有符號位,C#中可以劃分為9種整數(shù)類型,如表所示名稱說 明數(shù) 值 范 圍sbyte有符號的8位整數(shù)-128 127byte 無符號的8位整數(shù)0 255short有符號的16位整數(shù)-32768 32767ushort無符號的16位整數(shù)0

4、65535int有符號的32位整數(shù)-2147483648 2147483648uint無符號的32位整數(shù)0 4294967295long有符號的64位整數(shù)-9223372036854775808 9223372036854775808ulong無符號的64位整數(shù)0 18446744073709551615char無符號的16位整數(shù)0 6553584.2.1值類型中的簡單類型 注意:注意: 上表中char類型的可能值對應(yīng)于統(tǒng)一字符編碼標(biāo)準(zhǔn)(Unicode)的字符集。char類型與其他整數(shù)類型相比有以下兩點(diǎn)不同之處: (1) 沒有其他類型到char類型的隱式轉(zhuǎn)換,既使對于sbyte,byte和us

5、hort這樣能完全使用char類型代表其值的類型,sbyte、byte和ushort到char類型也不存在隱式轉(zhuǎn)換。 (2) char類型的常量必須被寫為字符形式,如果用整數(shù)形式,則必須帶有類型轉(zhuǎn)換前綴。如(char)10。94.2.1值類型中的簡單類型2、 浮點(diǎn)型 兩種浮點(diǎn)類型 float型 :1.510-453.41038 精確到小數(shù)點(diǎn)后面7位 double型 :5.010-3241.710308 精確到小數(shù)點(diǎn)后面15、16位 浮點(diǎn)運(yùn)算結(jié)果 正零和負(fù)零 正無窮和負(fù)無窮 非數(shù)字值 NaN非零值的有限數(shù)集 與浮點(diǎn)數(shù)運(yùn)算,其他類型要先轉(zhuǎn)換成浮點(diǎn)類型104.2.1值類型中的簡單類型3、小數(shù)類型 小

6、數(shù)類型是一種高精度、128位的數(shù)據(jù)類型,適用于金融和貨幣運(yùn)算。數(shù)值范圍從1.010-287.91028,精確到小數(shù)點(diǎn)后面28位。 小數(shù)類型較浮點(diǎn)類型而言,具有更大的精確度,但是數(shù)值范圍相對小了很多。 當(dāng)定義一個(gè)變量并賦值給它時(shí),使用 m 后綴以表明它是一個(gè)小數(shù)類型。例如:“decimal decMyValue = 1.0m;”。 這里如果省略了m,在變量被賦值之前,它將被編譯器認(rèn)作double類型。 114.2.1值類型中的簡單類型4、布爾型 布爾數(shù)據(jù)類型(bool)有true和false兩個(gè)布爾值 可以賦于true或false值給一個(gè)布爾變量,也可以賦于一個(gè)表達(dá)式 布爾類型的變量或表達(dá)式運(yùn)算

7、,結(jié)果還是布爾型124.2.2 引用類型 和值類型相比,引用類型不存儲它們所代表的實(shí)際數(shù)據(jù),而是它們存儲實(shí)際數(shù)據(jù)的引用。 C#中的引用類型,其實(shí)就是特殊的指針,它擁有的是基本的指針語義,但是又有C+中引用的某些特征。 C#中的引用類型有對象類型、類、接口、委托、字符串類型和數(shù)組。134.2.2 引用類型 對象類型:是所有類型之母它是其它類型最根本的基類 類類型:包含數(shù)據(jù)成員、函數(shù)成員和嵌套類型 接口:是一個(gè)只有抽象成員的引用類型 委托:封裝了具有一些標(biāo)志的一個(gè)方法 以上類型不做詳細(xì)介紹,請參閱相關(guān)教材144.2.2 引用類型1、字符串類型 string類型 :常見用法string str1=H

8、ello; /字符串賦值string str2=str1+World!; /字符串連接char c1=str10; /通過下標(biāo)訪問單個(gè)字符bool flag=(str1=str2); /比較兩個(gè)字符串是否相等 相關(guān)用法:(1) 取字串長度 (2) 截取字串的一部分 (3) 字串替換 (4) 字串中指定字符或字串首次(最后一次)出現(xiàn)位置 154.2.2 引用類型(5) 在字串中指定索引位插入指定字符 (6) 在字串左(或右)加空格或指定char字符,使字串達(dá)到指定長度 (7) 從指定位置開始刪除指定個(gè)數(shù)的字符 (8) 清除字串前后空格164.2.2 引用類型2、數(shù)組 數(shù)組是包含一串變量的數(shù)據(jù)結(jié)構(gòu)

9、。數(shù)組變量也稱作數(shù)組元素,它們具有相同的類型,這種類型也稱做數(shù)組類型。數(shù)組用下標(biāo)確定每一個(gè)數(shù)組元素的索引號,索引號從0開始。只有一個(gè)下標(biāo)的數(shù)組稱為一維數(shù)組,多于一個(gè)下標(biāo)的數(shù)組稱為多維數(shù)組 (1) 聲明數(shù)組時(shí),方括號跟在類型后面。 Int a (2) 數(shù)組的每個(gè)維數(shù)的長度不是數(shù)組類型的一部分 int a; a=new int10; 174.2.3其它數(shù)據(jù)類型 DateTime日期時(shí)間類型 :DateTime 值類型表示值范圍在公元0001年1月1日午夜12:00:00到公元9999年12月31日晚上11:59:59之間的日期和時(shí)間 DateTime currentTime;currentTime

10、=System.DateTime.Now; /取當(dāng)前年月日時(shí)分秒int year=currentTime.Year; /取當(dāng)前年int month=currentTime.Month; /取當(dāng)前月int day=currentTime.Day; /取當(dāng)前日int hour=currentTime.Hour; /取當(dāng)前時(shí)int minute=currentTime.Minute; /取當(dāng)前分int second=currentTime.Second; /取當(dāng)前秒string strCurrentTime=currentTime.ToString(); /取當(dāng)前時(shí)間作為字符串返回 184.2.4數(shù)

11、據(jù)轉(zhuǎn)換 C#數(shù)據(jù)類型之間必須顯式轉(zhuǎn)換1. 使用框架類轉(zhuǎn)換數(shù)據(jù)類型 如:int iAge; iAge=int.Parse(txtAge.Text);2. 通過造型轉(zhuǎn)換數(shù)據(jù)類型 如:double MyDouble=1.23; int MyInteger; MyInteger=(int)MyDouble;3. 顯式轉(zhuǎn)換 如:float num=1.23f;194.3 操作符 根據(jù)操作符作用的操作數(shù)的個(gè)數(shù)來分,C#包括多個(gè)一元操作符、多個(gè)二元操作符和一個(gè)三元操作符。表4-2列出了一些常用操作符。 當(dāng)一個(gè)表達(dá)式包含多個(gè)操作符時(shí),操作符的優(yōu)先級決定了計(jì)算的順序。 具體操作符參見下頁表204.3 操作符 如

12、下表:操作符類別操作符算術(shù)+ - * / %邏輯& & | | !字符串連接+遞增、遞減+ -關(guān)系= != =賦值= += -= *= /= %= 成員訪問.索引轉(zhuǎn)換()條件?:創(chuàng)建對象new類型信息sizeof typeof214.3 操作符 邏輯運(yùn)算中 &與| &與| 他們的區(qū)別 遞增(+)和遞減(-)運(yùn)算 “=”和比較“=”運(yùn)算符 224.4 控制語句 控制語句是在程序運(yùn)行過程中,有條件地執(zhí)行或重復(fù)執(zhí)行某些語句,改變程序正規(guī)的順序執(zhí)行流向,C#中把常見的控制語句劃分為選擇語句、循環(huán)語句和跳轉(zhuǎn)語句 234.4.1 選擇語句1、if語句 if語句有三種結(jié)構(gòu):

13、單條件選擇: if( ) 雙條件選擇 :if ( ) else 多條件選擇: if ( )else if ( )else if ( ) else 其中()內(nèi)為條件布爾表達(dá)式,內(nèi)為各分支的語句塊,如果分支語句塊中僅一條語句,則可以省略不寫。 244.4.1 選擇語句2、switch語句 求一個(gè)表達(dá)式的值,并將這個(gè)值與許多case進(jìn)行比較。 結(jié)果如下:Switch(表達(dá)式) case 結(jié)果1: case 結(jié)果2: default: 254.4.2 循環(huán)語句 1、While語句 當(dāng)一個(gè)表達(dá)式的值為true時(shí),這個(gè)語句執(zhí)行一個(gè)語句列表。 結(jié)構(gòu):While(表達(dá)式) 循環(huán)體語句264.4.2 循環(huán)語句2

14、、 do語句 與while語句相似,但是循環(huán)體至少執(zhí)行1次do 循環(huán)體while(表達(dá)式)274.4.2 循環(huán)語句3、 for語句 結(jié)構(gòu)如下:for(初始化器;條件表達(dá)式;迭代語句) 循環(huán)體284.4.2 循環(huán)語句4、 foreach語句 語句用來循環(huán)一個(gè)集合中的元素 foreach(類型 element in 數(shù)組) 循環(huán)體294.4.3 跳轉(zhuǎn)語句 1break語句:這個(gè)語句常與switch語句聯(lián)合使用,也經(jīng)常用于跳出一個(gè)循環(huán)語句塊。 3goto語句:這個(gè)語句將控制返回到控制循環(huán)語句的布爾表達(dá)式。 2continue語句:這個(gè)語句把控制無條件交給一個(gè)標(biāo)記語句。304.5 命名空間 命名空間(

15、Namespace)是將相關(guān)的類型進(jìn)行分組的邏輯命名方案。.NET Framework 使用分層命名方案,將類型分為相關(guān)功能的邏輯類別。 System是一個(gè)命名空間,Console是該命名空間中包含的類。如果使用 using關(guān)鍵字,則不必使用完整的名稱,例如:using System;Console.WriteLine(Hello);Console.WriteLine(World!);314.6 異常處理 異常處理就是C#為處理錯(cuò)誤情況提供的一種機(jī)制。C#的異常處理所用到關(guān)鍵字包括: try 用于檢查發(fā)生的異常,并幫助發(fā)送任何可能的異常。 catch以控制權(quán)更大的方式處理錯(cuò)誤,可以有多個(gè)cat

16、ch子句。 finally無論是否引發(fā)了異常,finally的代碼塊都將被執(zhí)行。 throw 用于引發(fā)異常,可引發(fā)預(yù)定義異常和自定義異常。324.7 C#與其他語言的關(guān)系 C#作為Microsoft公司力推的服務(wù)器端腳本語言,從使用方法上來看是完全獨(dú)立的,不需要其他腳本語言的支持,但從其產(chǎn)生的歷史和作用來看,和他們又有著千絲萬縷的聯(lián)系,這里給出一些比較和分析 334.7.1 C#與CC+語言的關(guān)系 語言是在70年代初問世的 C+是建立在C語言之上的 C#是微軟開發(fā)的,專門編寫.NET軟件的語言 對比參見下表 344.7.1 C#與CC+語言的關(guān)系功能C#C+繼承允許繼承單個(gè)類,允許實(shí)現(xiàn)多個(gè)接口

17、允許從多個(gè)類繼承接口實(shí)現(xiàn)通過“interface”關(guān)鍵詞通過抽象類內(nèi)存管理由運(yùn)行時(shí)環(huán)境管理,使用垃圾收集器。需要手工管理指針支持,但只在很少使用的非安全模式下才支持,通常以引用取代指針支持,一種很常用的功能源代碼編譯后的形式.NET中間語言(IL)可執(zhí)行代碼單一的公共基類是否異常處理異常處理返回錯(cuò)誤354.7.2 C#與Java語言的關(guān)系C#和JAVA語言對照表功能C#Java繼承允許繼承單個(gè)類,允許實(shí)現(xiàn)多個(gè)接口允許繼承單個(gè)類,允許實(shí)現(xiàn)多個(gè)接口接口實(shí)現(xiàn)通過“interface”關(guān)鍵詞通過“interface”關(guān)鍵詞內(nèi)存管理由運(yùn)行時(shí)環(huán)境管理,使用垃圾收集器由運(yùn)行時(shí)環(huán)境管理,使用垃圾收集器指針支持

18、,但只在很少使用的非安全模式下才支持,通常以引用取代指針完全不支持,代之以引用源代碼編譯后的形式.NET中間語言(IL)字節(jié)碼單一的公共基類是是異常處理異常處理異常處理364.7.2 C#與Java語言的關(guān)系 此外,C#和java有著很多相似之處:(1) 二者都編譯成跨平臺的、跨語言的代碼,并且代碼只能在一個(gè)受控制的環(huán)境中運(yùn)行自動回收垃圾內(nèi)存,并且消除了指針(在C#中可以使用指針,不過必須注明unsafe關(guān)鍵字);(2) 二者都不需要頭文件,所有的代碼都被“包(package)”限制在某個(gè)范圍內(nèi),并且因?yàn)闆]有頭文件,所以消除了類定義的循環(huán)依賴;(3) 所有的類都是從對象派生出來,并且必須使用New關(guān)鍵字分配內(nèi)存;(4) 都是用對象加鎖的方式來支持多線程;(5) 都具有接口(interface)的概念。374.7.3 C#與VBScript語言的關(guān)系C#和VBScript對照表比較項(xiàng)目C#VBScript編寫客戶端程序不可以可以編寫服務(wù)器端程序可以可以面向?qū)ο笸耆嫦驅(qū)ο缶幊袒趯ο缶幊踢\(yùn)行環(huán)境.NET FrameworkActive Server Page出品公司微軟微軟數(shù)據(jù)庫操作方便功能強(qiáng)大其他功能強(qiáng)大更加強(qiáng)大384.7.4 C#與JavaScript的關(guān)系 JavaScript是一種基于對象和事件

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論