第2章C程序設(shè)計(jì)基礎(chǔ)_第1頁(yè)
第2章C程序設(shè)計(jì)基礎(chǔ)_第2頁(yè)
第2章C程序設(shè)計(jì)基礎(chǔ)_第3頁(yè)
第2章C程序設(shè)計(jì)基礎(chǔ)_第4頁(yè)
第2章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)介

1、2.1 2.1 標(biāo)識(shí)符標(biāo)識(shí)符2.2 2.2 C#C#中數(shù)據(jù)類型中數(shù)據(jù)類型2.3 2.3 C#C#中的變量和常量中的變量和常量2.4 2.4 類型轉(zhuǎn)換類型轉(zhuǎn)換 2.5 2.5 結(jié)構(gòu)類型和枚舉類型結(jié)構(gòu)類型和枚舉類型2.6 2.6 C#C#運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式2.7 2.7 C#C#中常用類和中常用類和結(jié)構(gòu)結(jié)構(gòu) C#C#的標(biāo)識(shí)符名稱必須遵守以下規(guī)則:的標(biāo)識(shí)符名稱必須遵守以下規(guī)則:(1 1)所有的標(biāo)識(shí)符只能由字母、數(shù)字和下劃線這)所有的標(biāo)識(shí)符只能由字母、數(shù)字和下劃線這3 3類字符類字符組成,且第一個(gè)字符必須為字母或下劃線。組成,且第一個(gè)字符必須為字母或下劃線。(2 2)標(biāo)識(shí)符中不能包含空格、標(biāo)

2、點(diǎn)符號(hào)、運(yùn)算符等其他)標(biāo)識(shí)符中不能包含空格、標(biāo)點(diǎn)符號(hào)、運(yùn)算符等其他符號(hào)。符號(hào)。(3 3)標(biāo)識(shí)符嚴(yán)格區(qū)分大小寫。)標(biāo)識(shí)符嚴(yán)格區(qū)分大小寫。(4 4)標(biāo)識(shí)符不能與)標(biāo)識(shí)符不能與C#C#關(guān)鍵字名相同。關(guān)鍵字名相同。(5 5)標(biāo)識(shí)符不能與)標(biāo)識(shí)符不能與C#C#中的類庫(kù)名相同。中的類庫(kù)名相同。 a12_c 1abc 數(shù)據(jù)類型 值類型 引用類型 簡(jiǎn)單類型 結(jié)構(gòu)類型 枚舉類型 整數(shù)類型 字符類型 布爾類型 實(shí)數(shù)類型 sbyte byte short ushort int uint long ulong floate double decimal 類 委托 數(shù)組 接口 C#C#中數(shù)據(jù)類型分類中數(shù)據(jù)類型分類 值值

3、類型的變量?jī)?nèi)含變量值本身,類型的變量?jī)?nèi)含變量值本身,C#C#的值類型可以分為的值類型可以分為簡(jiǎn)單類型、結(jié)構(gòu)類型和枚舉類型簡(jiǎn)單類型、結(jié)構(gòu)類型和枚舉類型。2.2.1 2.2.1 值類型值類型1. 1. 整數(shù)類型整數(shù)類型類型標(biāo)識(shí)符類型標(biāo)識(shí)符說(shuō)明說(shuō)明占用位數(shù)占用位數(shù)取值范圍取值范圍示例示例sbyte帶符號(hào)字節(jié)型帶符號(hào)字節(jié)型8-128127sbyte i=10 ;byte無(wú)符號(hào)字節(jié)型無(wú)符號(hào)字節(jié)型80255byte i=10 ;short帶符號(hào)短整型帶符號(hào)短整型16-32,76832,767short i=10 ;ushort無(wú)符號(hào)短整型無(wú)符號(hào)短整型16065,535ushort i=10 ;int帶符號(hào)

4、整型帶符號(hào)整型32-2,147,483,6482,147,483,647int i=10 ;uint無(wú)符號(hào)整型無(wú)符號(hào)整型3204,294,967,295uint i=10 ;uint i=10U ;long帶符號(hào)長(zhǎng)整型帶符號(hào)長(zhǎng)整型64-9,223,372,036,854,775,8089,223,372,036,854,775,807long i=10 ;long i=10L ;ulong無(wú)符號(hào)長(zhǎng)整型無(wú)符號(hào)長(zhǎng)整型64018,446,744,073,709,551,615ulong i=16 ;ulong i=16U ;ulong i=16L ;ulong i=16UL ;2. 2. 實(shí)數(shù)類型實(shí)

5、數(shù)類型類型標(biāo)識(shí)符類型標(biāo)識(shí)符說(shuō)明說(shuō)明取值范圍取值范圍示例示例float單精度浮點(diǎn)數(shù)單精度浮點(diǎn)數(shù)1.510-45 2.41038,精度為,精度為7位數(shù)位數(shù)float f=1.23F ;double雙精度浮點(diǎn)數(shù)雙精度浮點(diǎn)數(shù)5.010-324 1.710308,精度為,精度為15到到16位數(shù)位數(shù)double d=1.23 ;decimal固定精度的浮點(diǎn)數(shù)固定精度的浮點(diǎn)數(shù)1.010-28到到7.91028的之間,的之間,精度為精度為28至至29位有效數(shù)字位有效數(shù)字decimal d=1.23M ;3 3 字符類型字符類型 例如,可以采用如下方式字符變量賦值:例如,可以采用如下方式字符變量賦值: char

6、 c=H ; / 字符字符H char c=x0048; / 字符字符H,十六進(jìn)制轉(zhuǎn)義符(前綴為,十六進(jìn)制轉(zhuǎn)義符(前綴為x) char c=u0048; / 字符字符H,Unicode表示形式(前綴為表示形式(前綴為u) char c=r; / 回車,轉(zhuǎn)義字符回車,轉(zhuǎn)義字符 在表示一個(gè)字符常數(shù)時(shí),單引號(hào)內(nèi)的有效字符數(shù)量必須且只能在表示一個(gè)字符常數(shù)時(shí),單引號(hào)內(nèi)的有效字符數(shù)量必須且只能是一個(gè),而且不能是單引號(hào)或者反斜杠(是一個(gè),而且不能是單引號(hào)或者反斜杠()。)。4. 4. 布爾類型布爾類型 布爾類型數(shù)據(jù)用于表示邏輯真和邏輯假,布爾類型的布爾類型數(shù)據(jù)用于表示邏輯真和邏輯假,布爾類型的類型標(biāo)識(shí)符是類

7、型標(biāo)識(shí)符是bool。 注意:注意:在在C#語(yǔ)言中,語(yǔ)言中,bool類型不能像類型不能像C+語(yǔ)言那樣語(yǔ)言那樣可能直接轉(zhuǎn)換為可能直接轉(zhuǎn)換為int類型,例如,類型,例如,int a=(23);在在C/C+中中都是正確的,但在都是正確的,但在C中不允許這樣,會(huì)出現(xiàn)中不允許這樣,會(huì)出現(xiàn)“無(wú)法將無(wú)法將類型類型bool隱式轉(zhuǎn)換為隱式轉(zhuǎn)換為int”的編譯錯(cuò)誤。的編譯錯(cuò)誤。5. 5. 簡(jiǎn)單類型對(duì)應(yīng)的簡(jiǎn)單類型對(duì)應(yīng)的.NET Framework.NET Framework系統(tǒng)類型別名系統(tǒng)類型別名C#類型類型.NET Framework類型類型C#類型類型.NET Framework類型類型boolSystem.Bo

8、oleanuintSystem.UInt32byteSystem.BytelongSystem.Int64sbyteSystem.SByteulongSystem.UInt64charSystem.CharobjectSystem.ObjectdecimalSystem.DecimalshortSystem.Int16doubleSystem.DoubleushortSystem.UInt16floatSystem.SinglestringSystem.StringintSystem.Int32引用類型也稱為參考類型。和值類型相比,引用類引用類型也稱為參考類型。和值類型相比,引用類型的變量不直

9、接存儲(chǔ)所包含的值,而是指向它所要存儲(chǔ)型的變量不直接存儲(chǔ)所包含的值,而是指向它所要存儲(chǔ)的值。類似的值。類似C C中的指針。中的指針。 2.2.2 2.2.2 引用類型引用類型1. object類類 object是是C#中所有類型(包括所有的值類型和引用類型)中所有類型(包括所有的值類型和引用類型)的基類,的基類,C#中的所有類型都直接或間接地從中的所有類型都直接或間接地從object類中繼承類中繼承而來(lái)。因此,對(duì)一個(gè)而來(lái)。因此,對(duì)一個(gè)object的變量可以賦予任何類型的值。的變量可以賦予任何類型的值。 float f=1.23; object obj1; /定義定義obj1對(duì)象對(duì)象 obj1=f

10、; object obj2=China;/定義定義obj2對(duì)象并賦初值對(duì)象并賦初值 C#還定義了一個(gè)還定義了一個(gè)string類,表示一個(gè)類,表示一個(gè)Unicode字符序列,字符序列,專門用于對(duì)字符串的操作專門用于對(duì)字符串的操作。 同樣同樣,這個(gè)類也是在,這個(gè)類也是在.NET Framework的命名空間的命名空間System中定義的,是類中定義的,是類System.String的別名的別名。2. string類類字符串在實(shí)際中應(yīng)用非常廣泛,利用字符串在實(shí)際中應(yīng)用非常廣泛,利用string類中封裝的各種類中封裝的各種內(nèi)部操作,可以很容易完成對(duì)字符串處理。例如:內(nèi)部操作,可以很容易完成對(duì)字符串處理

11、。例如: string str1=123+abc; /+運(yùn)算符用于連接字符串運(yùn)算符用于連接字符串 char c=Hello World!2; /運(yùn)算符可以訪問(wèn)運(yùn)算符可以訪問(wèn)string中的單個(gè)字符中的單個(gè)字符,c=e string str2=China; string str3=China; / 字符串的另一種表示形式,用字符串的另一種表示形式,用引起來(lái)。引起來(lái)。 bool b=(str2=str3); /=運(yùn)算符用于兩個(gè)字符串比較,運(yùn)算符用于兩個(gè)字符串比較,b=true1. 變量定義變量定義 在在C#程序里使用某個(gè)變量之前,必須要告訴編譯器它程序里使用某個(gè)變量之前,必須要告訴編譯器它是一個(gè)什

12、么樣的變量,因此要對(duì)變量進(jìn)行定義。定義變量是一個(gè)什么樣的變量,因此要對(duì)變量進(jìn)行定義。定義變量的方法如下:的方法如下: 訪問(wèn)修飾符訪問(wèn)修飾符 數(shù)據(jù)類型數(shù)據(jù)類型 變量名變量名 = 初始值初始值;2.3.1 2.3.1 變量變量例如例如: string name=王華王華; int age=20;也可以同時(shí)聲明一個(gè)或多個(gè)給定類型的變量,例如:也可以同時(shí)聲明一個(gè)或多個(gè)給定類型的變量,例如: int a=1,b=2,c=3; 定義一個(gè)變量,系統(tǒng)就會(huì)在內(nèi)存中開(kāi)辟相應(yīng)大小的空定義一個(gè)變量,系統(tǒng)就會(huì)在內(nèi)存中開(kāi)辟相應(yīng)大小的空間來(lái)存放數(shù)據(jù)??梢詮南旅骈g來(lái)存放數(shù)據(jù)。可以從下面4個(gè)層面來(lái)理解變量。個(gè)層面來(lái)理解變量。l

13、 變量名稱變量名稱l 變量的值變量的值l 變量的數(shù)據(jù)類型變量的數(shù)據(jù)類型l 變量的作用域變量的作用域2.3.2 2.3.2 值類型變量和引用類型變量的區(qū)別值類型變量和引用類型變量的區(qū)別程序的內(nèi)存空間分為??臻g和堆空間,值類型的數(shù)程序的內(nèi)存空間分為??臻g和堆空間,值類型的數(shù)據(jù)在??臻g中分配,而引用類型數(shù)據(jù)(對(duì)象)在堆空間據(jù)在??臻g中分配,而引用類型數(shù)據(jù)(對(duì)象)在堆空間中分配。中分配。程序的執(zhí)行空間:程序的執(zhí)行空間:棧空間??臻g堆空間堆空間1. 1. 棧空間和堆空間??臻g和堆空間 棧空間是一種先進(jìn)后出的數(shù)據(jù)結(jié)構(gòu)。棧空間用于存??臻g是一種先進(jìn)后出的數(shù)據(jù)結(jié)構(gòu)。??臻g用于存儲(chǔ)如下類型的數(shù)據(jù):儲(chǔ)如下類型的數(shù)

14、據(jù):l 某些類型變量的值。某些類型變量的值。l 程序當(dāng)前的執(zhí)行環(huán)境。程序當(dāng)前的執(zhí)行環(huán)境。l 傳遞給方法的參數(shù)。傳遞給方法的參數(shù)。進(jìn)棧和出棧操作進(jìn)棧和出棧操作 堆空間堆空間是一塊內(nèi)存空間,在堆空間中可以分配大塊的是一塊內(nèi)存空間,在堆空間中可以分配大塊的內(nèi)存以存儲(chǔ)某類型的數(shù)據(jù)對(duì)象。內(nèi)存以存儲(chǔ)某類型的數(shù)據(jù)對(duì)象。 與棧不同,堆里的空間能夠以任意順序存入和移除。與棧不同,堆里的空間能夠以任意順序存入和移除。如圖如圖2.52.5所示表示一個(gè)程序在一個(gè)堆里存放了所示表示一個(gè)程序在一個(gè)堆里存放了3 3個(gè)數(shù)據(jù)。個(gè)數(shù)據(jù)。2. 2. 理解值類型的變量理解值類型的變量 C#中的值類型變量和中的值類型變量和C/C+語(yǔ)言

15、中的普通變量(非語(yǔ)言中的普通變量(非指針變量)相似,這類變量直接包含它們的值。所有的值指針變量)相似,這類變量直接包含它們的值。所有的值類型均隱式派生自類型均隱式派生自 System.ValueType。 C#中在內(nèi)存的棧空間中為值類型變量分配空間,而中在內(nèi)存的??臻g中為值類型變量分配空間,而且沒(méi)有單獨(dú)的堆分配或垃圾回收開(kāi)銷。因此值類型變量會(huì)且沒(méi)有單獨(dú)的堆分配或垃圾回收開(kāi)銷。因此值類型變量會(huì)隨著方法調(diào)用后棧空間的消亡而自動(dòng)清除(隨著方法調(diào)用后??臻g的消亡而自動(dòng)清除(C#中的值類中的值類型變量像型變量像C/C+語(yǔ)言中函數(shù)內(nèi)的局部變量,函數(shù)執(zhí)行完后語(yǔ)言中函數(shù)內(nèi)的局部變量,函數(shù)執(zhí)行完后由系統(tǒng)釋放其存

16、儲(chǔ)空間)。由系統(tǒng)釋放其存儲(chǔ)空間)。例如:例如:int x;int y=2;x=y;在在C/C+語(yǔ)言中可以定義指針變量,例如:語(yǔ)言中可以定義指針變量,例如:char *p;其中,其中,p是一個(gè)指針變量,其中存放某個(gè)字符變量的地是一個(gè)指針變量,其中存放某個(gè)字符變量的地址,注意變量址,注意變量p和它所指向的字符變量是兩個(gè)不同的東西。和它所指向的字符變量是兩個(gè)不同的東西。在在C#中沒(méi)有指針,而改為中沒(méi)有指針,而改為引用引用,引用表示某個(gè)對(duì)象的,引用表示某個(gè)對(duì)象的地址而不是變量或?qū)ο蟊旧淼刂范皇亲兞炕驅(qū)ο蟊旧怼?. 3. 理解引用類型的變量理解引用類型的變量在在C#中,無(wú)論值類型變量還是引用類型變量,

17、都是在中,無(wú)論值類型變量還是引用類型變量,都是在??臻g中分配對(duì)應(yīng)的存儲(chǔ)空間,所不同的是,引用類型變??臻g中分配對(duì)應(yīng)的存儲(chǔ)空間,所不同的是,引用類型變量量所指向的對(duì)象所指向的對(duì)象是在托管堆上分配內(nèi)存空間的,為什么這是在托管堆上分配內(nèi)存空間的,為什么這樣呢樣呢?void fun()char *p;/定義指針變量定義指針變量pint i;/定義整型變量定義整型變量ip=(char *)malloc(11*sizeof(char);/為為p分配分配11個(gè)個(gè)字符的空間字符的空間for (i=0;i10;i+)/為為10個(gè)字符單元分別賦值個(gè)字符單元分別賦值aj*(p+i)=a+i; *(p+i)=0;pr

18、intf(%sn,p);/輸出:輸出:abcdefghij先看一個(gè)簡(jiǎn)單的先看一個(gè)簡(jiǎn)單的C/C+語(yǔ)言函數(shù):語(yǔ)言函數(shù):函數(shù)執(zhí)行后函數(shù)執(zhí)行后p所指向的空間沒(méi)有釋放所指向的空間沒(méi)有釋放.NET Framework改進(jìn)了這一點(diǎn):改進(jìn)了這一點(diǎn):將將C#應(yīng)用程序的執(zhí)行置于應(yīng)用程序的執(zhí)行置于CLR的監(jiān)控之下,而且所有的監(jiān)控之下,而且所有引用類型變量所指向的對(duì)象(其生命周期是全局性的)都引用類型變量所指向的對(duì)象(其生命周期是全局性的)都在托管堆上分配空間,程序執(zhí)行完畢,由在托管堆上分配空間,程序執(zhí)行完畢,由CLR將堆空間全將堆空間全部回收,這樣就不會(huì)出現(xiàn)像前面部回收,這樣就不會(huì)出現(xiàn)像前面C/C+程序出現(xiàn)的內(nèi)存泄

19、漏程序出現(xiàn)的內(nèi)存泄漏問(wèn)題了。問(wèn)題了。所以在所以在C#中,當(dāng)定義一個(gè)引用類型變量時(shí),系統(tǒng)在中,當(dāng)定義一個(gè)引用類型變量時(shí),系統(tǒng)在棧空間中為該引用變量分配存儲(chǔ)空間,要想創(chuàng)建對(duì)象并把棧空間中為該引用變量分配存儲(chǔ)空間,要想創(chuàng)建對(duì)象并把對(duì)象的存儲(chǔ)地址賦給該變量,就需要使用對(duì)象的存儲(chǔ)地址賦給該變量,就需要使用new操作符。例操作符。例如:如:MyClass var;/MyClass是已定義的類或類型是已定義的類或類型var=new MyClass();/創(chuàng)建創(chuàng)建var引用的引用的實(shí)例實(shí)例,new引用引用類型變量及其所類型變量及其所指實(shí)例指實(shí)例 下面以數(shù)組引用類型變量為例進(jìn)一步說(shuō)明引用類型變量下面以數(shù)組引用類

20、型變量為例進(jìn)一步說(shuō)明引用類型變量和值變量的區(qū)別:和值變量的區(qū)別:int a = new int3 1, 2, 3;/定義一個(gè)數(shù)組定義一個(gè)數(shù)組afor (int i = 0; i 3; i+)/輸出數(shù)組輸出數(shù)組a的所有元素的所有元素Console.Write(0 ,ai);Console.WriteLine();int b = a;/定義數(shù)組定義數(shù)組b并賦值為并賦值為afor (int i = 0; i 3; i+)/修改數(shù)組修改數(shù)組b的元素的元素bi *= 2;for (int i = 0; i 3; i+)/再次輸出數(shù)組再次輸出數(shù)組a的所有元素的所有元素Console.Write(0 , a

21、i);Console.WriteLine();引用型變量的復(fù)制引用型變量的復(fù)制: : int b = a;1. 直接常量直接常量 直接常量是指把程序中不變的量直接硬編碼為數(shù)值或直接常量是指把程序中不變的量直接硬編碼為數(shù)值或字符串值,例如,以下都是直接常量:字符串值,例如,以下都是直接常量: 100 /整型直接常量整型直接常量 1.23e5 /浮點(diǎn)型直接常量浮點(diǎn)型直接常量2.2.3 2.2.3 常量常量2. 符號(hào)常量符號(hào)常量 符號(hào)常量是通過(guò)關(guān)鍵字符號(hào)常量是通過(guò)關(guān)鍵字const聲明的常量,包括常量的聲明的常量,包括常量的名稱和它的值。常量聲明的格式如下:名稱和它的值。常量聲明的格式如下: cons

22、t 數(shù)據(jù)類型數(shù)據(jù)類型 常量名常量名=初始值初始值; 其中,其中,“常量名常量名”必須是必須是C#的合法標(biāo)識(shí)符,在程序中的合法標(biāo)識(shí)符,在程序中通過(guò)常量名來(lái)訪問(wèn)該常量。通過(guò)常量名來(lái)訪問(wèn)該常量?!邦愋蜆?biāo)識(shí)符類型標(biāo)識(shí)符”指示了所定指示了所定義的常量的數(shù)據(jù)類型,而義的常量的數(shù)據(jù)類型,而“初始值初始值”是所定義的常量的是所定義的常量的值。值。 例如:例如: const double PI=2.14159265; 值類型之間的轉(zhuǎn)換有隱式轉(zhuǎn)換和顯式轉(zhuǎn)換。另外裝箱值類型之間的轉(zhuǎn)換有隱式轉(zhuǎn)換和顯式轉(zhuǎn)換。另外裝箱和拆箱也屬于一種類型轉(zhuǎn)換。和拆箱也屬于一種類型轉(zhuǎn)換。 隱隱式轉(zhuǎn)換是系統(tǒng)默認(rèn)的、不需要加以聲明就可以進(jìn)行的

23、轉(zhuǎn)換。式轉(zhuǎn)換是系統(tǒng)默認(rèn)的、不需要加以聲明就可以進(jìn)行的轉(zhuǎn)換。源類型源類型目標(biāo)類型目標(biāo)類型sbyteshort、int、long、float、double、decimalbyteshort、ushort、int、uint、long、ulong、float、double、decimalshortint、long、float、double、decimalushortint、uint、long、ulong、float、double、decimalintlong、float、double、decimaluintlong、ulong、float、double、decimallongfloat、double、

24、decimalulongfloat、double、decimalcharushort、int、uint、long、ulong、float、double、decimalfloatdouble2.4.1 2.4.1 隱式轉(zhuǎn)換隱式轉(zhuǎn)換 顯顯式轉(zhuǎn)換又叫強(qiáng)制類型轉(zhuǎn)換,與隱式轉(zhuǎn)換相反,顯式轉(zhuǎn)換式轉(zhuǎn)換又叫強(qiáng)制類型轉(zhuǎn)換,與隱式轉(zhuǎn)換相反,顯式轉(zhuǎn)換需要用戶明確地指定轉(zhuǎn)換類型,一般在不存在該類型的隱式需要用戶明確地指定轉(zhuǎn)換類型,一般在不存在該類型的隱式轉(zhuǎn)換時(shí)才使用。格式如下:轉(zhuǎn)換時(shí)才使用。格式如下: (類型標(biāo)識(shí)符類型標(biāo)識(shí)符)表達(dá)式表達(dá)式 其其作用是將作用是將“表達(dá)式表達(dá)式”值的類型轉(zhuǎn)換為值的類型轉(zhuǎn)換為“類型標(biāo)識(shí)符類

25、型標(biāo)識(shí)符”的的類型。例如:類型。例如: (int)1.23 /把把double類型的類型的1.23轉(zhuǎn)換成轉(zhuǎn)換成int類型,結(jié)果為類型,結(jié)果為1 2.4.2 2.4.2 顯式轉(zhuǎn)換顯式轉(zhuǎn)換 需要提醒需要提醒注意注意以下幾點(diǎn):以下幾點(diǎn): (1)顯式轉(zhuǎn)換可能會(huì)導(dǎo)致錯(cuò)誤。進(jìn)行這種轉(zhuǎn)換時(shí)編譯器將)顯式轉(zhuǎn)換可能會(huì)導(dǎo)致錯(cuò)誤。進(jìn)行這種轉(zhuǎn)換時(shí)編譯器將對(duì)轉(zhuǎn)換進(jìn)行溢出檢測(cè)。如果有溢出說(shuō)明轉(zhuǎn)換失敗,就表明源對(duì)轉(zhuǎn)換進(jìn)行溢出檢測(cè)。如果有溢出說(shuō)明轉(zhuǎn)換失敗,就表明源類型不是一個(gè)合法的目標(biāo)類型,轉(zhuǎn)換就無(wú)法進(jìn)行。類型不是一個(gè)合法的目標(biāo)類型,轉(zhuǎn)換就無(wú)法進(jìn)行。 (2)對(duì)于從)對(duì)于從float、double、decimal到整型數(shù)據(jù)的轉(zhuǎn)

26、換,將到整型數(shù)據(jù)的轉(zhuǎn)換,將通過(guò)舍入得到最接近的整型值,如果這個(gè)整型值超出目標(biāo)類通過(guò)舍入得到最接近的整型值,如果這個(gè)整型值超出目標(biāo)類型的范圍,則出現(xiàn)轉(zhuǎn)換異常。型的范圍,則出現(xiàn)轉(zhuǎn)換異常。 【例例2.1】 設(shè)計(jì)一個(gè)控制臺(tái)程序說(shuō)明類型轉(zhuǎn)換的應(yīng)用。設(shè)計(jì)一個(gè)控制臺(tái)程序說(shuō)明類型轉(zhuǎn)換的應(yīng)用。using System;namespace proj2_1 class Program static void Main(string args) int i=65,i1,i2; double d = 66.3456,d1,d2; char c = A,c1,c2; Console.WriteLine(i=0:d5,d=

27、1:f,c=2, i, d, c); i1 = (int)d; /強(qiáng)制類型轉(zhuǎn)換強(qiáng)制類型轉(zhuǎn)換 d1 = i;/隱式類型轉(zhuǎn)換隱式類型轉(zhuǎn)換 c1 = (char)i; /強(qiáng)制類型轉(zhuǎn)換強(qiáng)制類型轉(zhuǎn)換 Console.WriteLine(i1=0:d5,d1=1:f,c1=2, i1, d1, c1); i2 = c; /隱式類型轉(zhuǎn)換隱式類型轉(zhuǎn)換 d2 = (int)d; /強(qiáng)制類型轉(zhuǎn)換強(qiáng)制類型轉(zhuǎn)換,轉(zhuǎn)換成整數(shù)后再隱式轉(zhuǎn)為轉(zhuǎn)換成整數(shù)后再隱式轉(zhuǎn)為double類型類型 c2 = (char)d; /強(qiáng)制類型轉(zhuǎn)換強(qiáng)制類型轉(zhuǎn)換 Console.WriteLine(i2=0:d5,d2=1:f,c2=2, i2,

28、d2, c2); 1. 裝箱轉(zhuǎn)換裝箱轉(zhuǎn)換 裝箱裝箱轉(zhuǎn)換是指將一個(gè)值類型的數(shù)據(jù)隱式地轉(zhuǎn)換成一個(gè)對(duì)轉(zhuǎn)換是指將一個(gè)值類型的數(shù)據(jù)隱式地轉(zhuǎn)換成一個(gè)對(duì)象類型的數(shù)據(jù)。例如,下面語(yǔ)句就執(zhí)行了裝箱轉(zhuǎn)換:象類型的數(shù)據(jù)。例如,下面語(yǔ)句就執(zhí)行了裝箱轉(zhuǎn)換: int i=10; object obj=i;裝箱轉(zhuǎn)換過(guò)程裝箱轉(zhuǎn)換過(guò)程 2.4.3 2.4.3 裝箱和拆箱裝箱和拆箱 2. 拆箱轉(zhuǎn)換拆箱轉(zhuǎn)換 拆箱轉(zhuǎn)換是指將一個(gè)引用類型的數(shù)據(jù)顯式地轉(zhuǎn)換成一個(gè)拆箱轉(zhuǎn)換是指將一個(gè)引用類型的數(shù)據(jù)顯式地轉(zhuǎn)換成一個(gè)值類型數(shù)據(jù)。值類型數(shù)據(jù)。 拆箱操作分為兩步:首先檢查對(duì)象實(shí)例,確保它是給定拆箱操作分為兩步:首先檢查對(duì)象實(shí)例,確保它是給定值類型的

29、一個(gè)裝箱值,然后把實(shí)例的值復(fù)制到值類型數(shù)據(jù)中。值類型的一個(gè)裝箱值,然后把實(shí)例的值復(fù)制到值類型數(shù)據(jù)中。例如,下面兩條語(yǔ)句就執(zhí)行了拆箱轉(zhuǎn)換:例如,下面兩條語(yǔ)句就執(zhí)行了拆箱轉(zhuǎn)換:object obj=10;int i=(int)obj;/拆箱拆箱折箱轉(zhuǎn)換過(guò)程折箱轉(zhuǎn)換過(guò)程 1. 結(jié)構(gòu)類型的聲明結(jié)構(gòu)類型的聲明 結(jié)構(gòu)類型由若干結(jié)構(gòu)類型由若干“成員成員”組成的。數(shù)據(jù)成員稱為字段,組成的。數(shù)據(jù)成員稱為字段,每個(gè)字段都有自已的數(shù)據(jù)類型。聲明結(jié)構(gòu)類型的一般格式每個(gè)字段都有自已的數(shù)據(jù)類型。聲明結(jié)構(gòu)類型的一般格式如下:如下: struct 結(jié)構(gòu)類型名稱結(jié)構(gòu)類型名稱 字段訪問(wèn)修飾符字段訪問(wèn)修飾符 數(shù)據(jù)類型數(shù)據(jù)類型 字段

30、字段1; 字段訪問(wèn)修飾符字段訪問(wèn)修飾符 數(shù)據(jù)類型數(shù)據(jù)類型 字段字段2; . 字段訪問(wèn)修飾符字段訪問(wèn)修飾符 數(shù)據(jù)類型數(shù)據(jù)類型 字段字段n; ;2.5.1 2.5.1 結(jié)構(gòu)類型結(jié)構(gòu)類型例如,以下聲明一個(gè)具有姓名和年齡的結(jié)構(gòu)體類型例如,以下聲明一個(gè)具有姓名和年齡的結(jié)構(gòu)體類型Student:struct Student/聲明結(jié)構(gòu)類型聲明結(jié)構(gòu)類型Student public int xh;/學(xué)號(hào)學(xué)號(hào) public string xm;/姓名姓名 public string xb;/性別性別 public int nl;/年齡年齡 public string bh;/班號(hào)班號(hào);2. 結(jié)構(gòu)類型變量的定義結(jié)構(gòu)

31、類型變量的定義 聲明一個(gè)結(jié)構(gòu)類型后,可以定義該結(jié)構(gòu)類型的變量聲明一個(gè)結(jié)構(gòu)類型后,可以定義該結(jié)構(gòu)類型的變量(簡(jiǎn)稱為結(jié)構(gòu)變量)。定義結(jié)構(gòu)變量的一般格式如下:(簡(jiǎn)稱為結(jié)構(gòu)變量)。定義結(jié)構(gòu)變量的一般格式如下: 結(jié)構(gòu)類型結(jié)構(gòu)類型 結(jié)構(gòu)結(jié)構(gòu)變量變量; 例如,在前面的結(jié)構(gòu)類型例如,在前面的結(jié)構(gòu)類型Student聲明后,定義它的聲明后,定義它的兩個(gè)變量如下:兩個(gè)變量如下: Student s1,s2;3. 結(jié)構(gòu)變量的使用結(jié)構(gòu)變量的使用1)訪問(wèn)結(jié)構(gòu)變量字段)訪問(wèn)結(jié)構(gòu)變量字段 訪問(wèn)結(jié)構(gòu)變量字段的一般格式如下:訪問(wèn)結(jié)構(gòu)變量字段的一般格式如下: 結(jié)構(gòu)變量名結(jié)構(gòu)變量名.字段名字段名 例如,例如,s1.xh表示結(jié)構(gòu)變量表

32、示結(jié)構(gòu)變量s1的學(xué)號(hào),的學(xué)號(hào),s2.xm表示結(jié)構(gòu)變量表示結(jié)構(gòu)變量s2的姓名。的姓名。 結(jié)構(gòu)體變量的字段可以在程序中單獨(dú)使用,與普通變量完結(jié)構(gòu)體變量的字段可以在程序中單獨(dú)使用,與普通變量完全相同。全相同。2)結(jié)構(gòu)變量的賦值)結(jié)構(gòu)變量的賦值 結(jié)構(gòu)變量的賦值有兩種方式。結(jié)構(gòu)變量的賦值有兩種方式。 結(jié)構(gòu)變量的字段賦值:使用方法與普通變量相同。結(jié)構(gòu)變量的字段賦值:使用方法與普通變量相同。 結(jié)構(gòu)變量之間賦值:要求賦值的兩個(gè)結(jié)構(gòu)變量必須類型結(jié)構(gòu)變量之間賦值:要求賦值的兩個(gè)結(jié)構(gòu)變量必須類型相同。例如:相同。例如: s1=s2;這樣這樣s2的所有字段值賦給的所有字段值賦給s1的對(duì)應(yīng)字段。的對(duì)應(yīng)字段。 【例例2.

33、2】 設(shè)計(jì)一個(gè)控制臺(tái)程序說(shuō)明結(jié)構(gòu)類型的應(yīng)用。設(shè)計(jì)一個(gè)控制臺(tái)程序說(shuō)明結(jié)構(gòu)類型的應(yīng)用。using System;namespace proj2_2 class Program struct Student /結(jié)構(gòu)類型聲明應(yīng)放在結(jié)構(gòu)類型聲明應(yīng)放在Main函數(shù)的外面函數(shù)的外面 public int xh; /學(xué)號(hào)學(xué)號(hào) public string xm; /姓名姓名 public string xb; /性別性別 public int nl; /年齡年齡 public string bh; /班號(hào)班號(hào) static void Main(string args) Student s1,s2;/定義兩個(gè)結(jié)構(gòu)

34、類型變量定義兩個(gè)結(jié)構(gòu)類型變量 s1.xh = 101; s1.xm = 李明李明; s1.xb = 男男; s1.nl = 20; s1.bh = 07001; Console.WriteLine(學(xué)號(hào)學(xué)號(hào):0,姓名姓名:1,性別性別:2,年齡年齡:3, 班號(hào)班號(hào):4, s1.xh, s1.xm, s1.xb, s1.nl, s1.bh); s2 = s1;/將結(jié)構(gòu)變量將結(jié)構(gòu)變量s1賦給賦給s2 s2.xh = 108; s2.xm = 王華王華; Console.WriteLine(學(xué)號(hào)學(xué)號(hào):0,姓名姓名:1,性別性別:2,年齡年齡:3, 班號(hào)班號(hào):4, s2.xh, s2.xm, s2.x

35、b, s2.nl, s2.bh); Console.WriteLine(學(xué)號(hào)學(xué)號(hào):0,姓名姓名:1,性別性別:2,年齡年齡:3, 班號(hào)班號(hào):4, s1.xh, s1.xm, s1.xb, s1.nl, s1.bh); 在執(zhí)行在執(zhí)行s2=s1并修改并修改s2后,后,s1沒(méi)有改變,說(shuō)明沒(méi)有改變,說(shuō)明s1、s2存儲(chǔ)在不同的位置。存儲(chǔ)在不同的位置。 枚舉枚舉類型也是一種自定義數(shù)據(jù)類型,它允許用符號(hào)代表類型也是一種自定義數(shù)據(jù)類型,它允許用符號(hào)代表數(shù)據(jù)。枚舉是指程序中某個(gè)變量具有一組確定的值,通過(guò)數(shù)據(jù)。枚舉是指程序中某個(gè)變量具有一組確定的值,通過(guò)“枚舉枚舉”可以將其值一一列出來(lái)??梢詫⑵渲狄灰涣谐鰜?lái)。1.

36、 枚舉類型的聲明枚舉類型的聲明 枚舉類型使用枚舉類型使用enum關(guān)鍵字聲明,其一般語(yǔ)法形式如下:關(guān)鍵字聲明,其一般語(yǔ)法形式如下: enum 枚舉名枚舉名枚舉成員枚舉成員1,枚舉成員枚舉成員2,其中,其中,enum是結(jié)構(gòu)類型的關(guān)鍵字是結(jié)構(gòu)類型的關(guān)鍵字。2.5.2 2.5.2 枚舉類型枚舉類型例如例如,以下聲明一個(gè)名稱為,以下聲明一個(gè)名稱為color的表示顏色的枚舉類型:的表示顏色的枚舉類型: enum Color Red,Green,Blue,White,Black 在聲明枚舉類型后,可以通過(guò)枚舉名來(lái)訪問(wèn)枚舉成員,在聲明枚舉類型后,可以通過(guò)枚舉名來(lái)訪問(wèn)枚舉成員,其使用語(yǔ)法如下:其使用語(yǔ)法如下:

37、枚舉名枚舉名.枚舉成員枚舉成員2. 枚舉成員的賦值枚舉成員的賦值 在聲明的枚舉類型中,每一個(gè)枚舉成員都有一個(gè)相對(duì)在聲明的枚舉類型中,每一個(gè)枚舉成員都有一個(gè)相對(duì)應(yīng)的常量值,默認(rèn)情況下應(yīng)的常量值,默認(rèn)情況下C#規(guī)定第規(guī)定第1個(gè)枚舉成員的值取個(gè)枚舉成員的值取0,它后面的每一個(gè)枚舉成員的值按加它后面的每一個(gè)枚舉成員的值按加1遞增。例如,前面遞增。例如,前面Color中,中,Red值為值為0,Green值為值為1,Blue值為值為2,依次類,依次類推。推。 可以為一個(gè)或多個(gè)枚舉成員賦整型值,當(dāng)某個(gè)枚舉成可以為一個(gè)或多個(gè)枚舉成員賦整型值,當(dāng)某個(gè)枚舉成員賦值后,其后的枚舉成員沒(méi)有賦值的話,自動(dòng)在前一個(gè)員賦值

38、后,其后的枚舉成員沒(méi)有賦值的話,自動(dòng)在前一個(gè)枚舉成員值之上加枚舉成員值之上加1作為其值。例如:作為其值。例如: enum Color Red=0, Green, Blue=3, White, Black=1;則這些枚舉成員的值分別為則這些枚舉成員的值分別為0、1、3、4、1。3. 枚舉類型變量的定義枚舉類型變量的定義 聲明一個(gè)枚舉類型后,可以定義該枚舉類型的變量(簡(jiǎn)聲明一個(gè)枚舉類型后,可以定義該枚舉類型的變量(簡(jiǎn)稱為枚舉變量)。定義枚舉變量的一般格式如下:稱為枚舉變量)。定義枚舉變量的一般格式如下: 枚舉類型枚舉類型 枚舉枚舉變量變量; 例如,在前面的枚舉類型例如,在前面的枚舉類型Color聲

39、明后,定義它的兩個(gè)變聲明后,定義它的兩個(gè)變量如下:量如下: Color c1,c2;1)枚舉變量的賦值)枚舉變量的賦值枚舉變量賦值的語(yǔ)法格式如下:枚舉變量賦值的語(yǔ)法格式如下: 枚舉變量枚舉變量=枚舉名枚舉名.枚舉成員枚舉成員例如:例如: c1=Color.Red;2)枚舉變量的訪問(wèn))枚舉變量的訪問(wèn) 枚舉變量像普通變量一樣直接訪問(wèn)。枚舉變量像普通變量一樣直接訪問(wèn)。4. 4. 枚舉變量的使用枚舉變量的使用2.6.1 2.6.1 算術(shù)運(yùn)算符算術(shù)運(yùn)算符符號(hào)符號(hào)意義意義示例示例+加法運(yùn)算加法運(yùn)算a+b減法減法/取負(fù)運(yùn)算取負(fù)運(yùn)算ab*乘法運(yùn)算乘法運(yùn)算a*b/除法運(yùn)算除法運(yùn)算a/b%取余數(shù)取余數(shù)a%b+累加

40、累加a+遞減遞減a 字符串字符串運(yùn)算符只有一個(gè),就是加號(hào)(運(yùn)算符只有一個(gè),就是加號(hào)(+)。它除了作)。它除了作為算術(shù)運(yùn)算符之外,還可以將字符串連接起來(lái),變成合為算術(shù)運(yùn)算符之外,還可以將字符串連接起來(lái),變成合并的新字符串。例如:并的新字符串。例如: string s=Hello; s=s+, World.; Console.WriteLine(s); /輸出:輸出:Hello, World.2.6.2 2.6.2 字符串運(yùn)算符字符串運(yùn)算符 賦值賦值運(yùn)算符(運(yùn)算符(=)用于改變變量的值,它先求出右側(cè))用于改變變量的值,它先求出右側(cè)表達(dá)式的結(jié)果,然后再將結(jié)果賦給左側(cè)的變量。表達(dá)式的結(jié)果,然后再將結(jié)果

41、賦給左側(cè)的變量。 符號(hào)符號(hào)意義意義示例示例+=加賦值加賦值a+=b等價(jià)于等價(jià)于a=a+b=減賦值減賦值a-=b等價(jià)于等價(jià)于a=a-b*=乘賦值乘賦值a*=b等價(jià)于等價(jià)于a=a*b/=除賦值除賦值a/=b等價(jià)于等價(jià)于a=a/b%=取模賦值取模賦值a%=b等價(jià)于等價(jià)于a=a%b=左移賦值左移賦值a=b等價(jià)于等價(jià)于a=a=右移賦值右移賦值a=b等價(jià)于等價(jià)于a=ab&=與賦值與賦值a&=b等價(jià)于等價(jià)于a=a&b=異或賦值異或賦值a=b等價(jià)于等價(jià)于a=ab|=或賦值或賦值a|=b等價(jià)于等價(jià)于a=a|b2.6.3 2.6.3 賦值運(yùn)算符賦值運(yùn)算符2.6.4 2.6.4 關(guān)系運(yùn)算符關(guān)系運(yùn)算符符號(hào)符號(hào)意義意義

42、示例示例小于小于23為為true=小于等于小于等于2大于大于23為為false=大于等于大于等于2=3為為false=等于等于2=3為為false!=不等于不等于2!=3為為true2.6.5 2.6.5 邏輯運(yùn)算符邏輯運(yùn)算符符號(hào)符號(hào)意義意義示例示例!邏輯非邏輯非!(23)為為false&邏輯與邏輯與(34)為為true|邏輯或邏輯或(34)為為true2.6.6 2.6.6 位運(yùn)算符位運(yùn)算符符號(hào)符號(hào)意義意義示例示例按位求反按位求反!2左移左移8右移右移82&按位與按位與8&5按位異或按位異或85|按位或按位或8|5 條件條件運(yùn)算符是一個(gè)三元運(yùn)算符,每個(gè)操作數(shù)同時(shí)又是運(yùn)算符是一個(gè)三元運(yùn)算符,每

43、個(gè)操作數(shù)同時(shí)又是表達(dá)式的值。由條件運(yùn)算符構(gòu)成的表達(dá)式稱為條件表達(dá)式。表達(dá)式的值。由條件運(yùn)算符構(gòu)成的表達(dá)式稱為條件表達(dá)式。條件運(yùn)算符的使用格式如下:條件運(yùn)算符的使用格式如下: 表達(dá)式表達(dá)式1 ? 表達(dá)式表達(dá)式2 : 表達(dá)式表達(dá)式3例如例如,以下表達(dá)式返回,以下表達(dá)式返回a和和b中的最大值:中的最大值: max=ab ? a : b計(jì)算過(guò)程是,當(dāng)計(jì)算過(guò)程是,當(dāng)ab,max= a; 否則否則max=b。2.6.7 2.6.7 條件運(yùn)算符條件運(yùn)算符2.6.8 2.6.8 其他運(yùn)算符其他運(yùn)算符1. sizeof運(yùn)算符運(yùn)算符sizeof運(yùn)算符求值類型數(shù)據(jù)在內(nèi)存中占用的字節(jié)數(shù)。運(yùn)算符求值類型數(shù)據(jù)在內(nèi)存中占用

44、的字節(jié)數(shù)。sizeof運(yùn)算符的語(yǔ)法格式如下:運(yùn)算符的語(yǔ)法格式如下:sizeof(類型標(biāo)識(shí)符類型標(biāo)識(shí)符)其結(jié)果為一個(gè)整數(shù),表示指定類型的數(shù)據(jù)在內(nèi)存分配其結(jié)果為一個(gè)整數(shù),表示指定類型的數(shù)據(jù)在內(nèi)存分配的字節(jié)數(shù)。該運(yùn)算符只能作用于值類型或值類型變量。的字節(jié)數(shù)。該運(yùn)算符只能作用于值類型或值類型變量。2. typeof運(yùn)算符運(yùn)算符該運(yùn)算符用于獲得指定數(shù)據(jù)類型的說(shuō)明。例如,若聲該運(yùn)算符用于獲得指定數(shù)據(jù)類型的說(shuō)明。例如,若聲明了結(jié)構(gòu)明了結(jié)構(gòu)Student,則以下語(yǔ)句輸出聲明,則以下語(yǔ)句輸出聲明Student結(jié)構(gòu)類型的結(jié)構(gòu)類型的程序名等。程序名等。Console.WriteLine(typeof(Student

45、);輸出:輸出:prog2_2.Program+Student3. new運(yùn)算符運(yùn)算符該運(yùn)算符用于創(chuàng)建一個(gè)類的對(duì)象。該運(yùn)算符用于創(chuàng)建一個(gè)類的對(duì)象。4. checked4. checked和和UncheckedUnchecked checked 關(guān)鍵字用于對(duì)整型算術(shù)運(yùn)算和轉(zhuǎn)換顯式啟用溢關(guān)鍵字用于對(duì)整型算術(shù)運(yùn)算和轉(zhuǎn)換顯式啟用溢出檢查。出檢查。 unchecked 關(guān)鍵字用于取消整型算術(shù)運(yùn)算和轉(zhuǎn)換的溢出關(guān)鍵字用于取消整型算術(shù)運(yùn)算和轉(zhuǎn)換的溢出檢查。檢查。 運(yùn)算符運(yùn)算符的優(yōu)先級(jí)是指在表達(dá)式中哪一個(gè)運(yùn)算符應(yīng)該首先的優(yōu)先級(jí)是指在表達(dá)式中哪一個(gè)運(yùn)算符應(yīng)該首先計(jì)算。計(jì)算。 C#根據(jù)運(yùn)算符的優(yōu)先級(jí)確定表達(dá)式的求值

46、順序:優(yōu)先根據(jù)運(yùn)算符的優(yōu)先級(jí)確定表達(dá)式的求值順序:優(yōu)先級(jí)高的運(yùn)算先做,優(yōu)先級(jí)低的操作后做,相同優(yōu)先級(jí)的操作級(jí)高的運(yùn)算先做,優(yōu)先級(jí)低的操作后做,相同優(yōu)先級(jí)的操作從左到右依次做,同時(shí)用小括號(hào)控制運(yùn)算順序,任何在小括從左到右依次做,同時(shí)用小括號(hào)控制運(yùn)算順序,任何在小括號(hào)內(nèi)的運(yùn)算最優(yōu)先進(jìn)行。號(hào)內(nèi)的運(yùn)算最優(yōu)先進(jìn)行。 2.6.9 2.6.9 運(yùn)算符的優(yōu)先級(jí)運(yùn)算符的優(yōu)先級(jí)C#C#中一切都是對(duì)象中一切都是對(duì)象 。2.7.1 2.7.1 StringString類類屬性屬性說(shuō)明說(shuō)明Chars 獲取此字符串中位于指定字符位置的字符。獲取此字符串中位于指定字符位置的字符。Length 獲取此字符串中的字符數(shù)。獲取此

47、字符串中的字符數(shù)。 string類型是類型是.NET Framework中的中的String類的別名。類的別名。string類型定義了相等運(yùn)算符(類型定義了相等運(yùn)算符(=和和!=)用于比較兩個(gè))用于比較兩個(gè)string對(duì)象,對(duì)象,另外,另外,+運(yùn)算符用于連接字符串,運(yùn)算符用于連接字符串,運(yùn)算符可以用來(lái)訪問(wèn)運(yùn)算符可以用來(lái)訪問(wèn)string中的各個(gè)字符。中的各個(gè)字符。 方法方法說(shuō)明說(shuō)明Compare 靜態(tài)方法。比較兩個(gè)指定的靜態(tài)方法。比較兩個(gè)指定的String對(duì)象對(duì)象CompareTo 非靜態(tài)方法。將此字符串與指定的對(duì)象或非靜態(tài)方法。將此字符串與指定的對(duì)象或String進(jìn)行比較,并返回兩者相對(duì)值的進(jìn)

48、行比較,并返回兩者相對(duì)值的指示指示Concat 靜態(tài)方法。連接靜態(tài)方法。連接String的一個(gè)或多個(gè)字符串的一個(gè)或多個(gè)字符串Contains 非靜態(tài)方法。返回一個(gè)值,該值指示指定的非靜態(tài)方法。返回一個(gè)值,該值指示指定的String對(duì)象是否出現(xiàn)在此字符串中對(duì)象是否出現(xiàn)在此字符串中 Equals 非靜態(tài)方法。確定兩個(gè)非靜態(tài)方法。確定兩個(gè)String對(duì)象是否具有相同的值對(duì)象是否具有相同的值Format 靜態(tài)方法。將指定的靜態(tài)方法。將指定的String中的每個(gè)格式項(xiàng)替換為相應(yīng)對(duì)象的值的文本等效項(xiàng)中的每個(gè)格式項(xiàng)替換為相應(yīng)對(duì)象的值的文本等效項(xiàng) IndexOf 非靜態(tài)方法。返回非靜態(tài)方法。返回String或

49、一個(gè)或多個(gè)字符在此字符串中的第一個(gè)匹配項(xiàng)的索引或一個(gè)或多個(gè)字符在此字符串中的第一個(gè)匹配項(xiàng)的索引Insert 非靜態(tài)方法。在該非靜態(tài)方法。在該String中的指定索引位置插入一個(gè)指定的中的指定索引位置插入一個(gè)指定的StringRemove 非靜態(tài)方法。從該非靜態(tài)方法。從該String中刪除指定個(gè)數(shù)的字符中刪除指定個(gè)數(shù)的字符Replace 非靜態(tài)方法。將該非靜態(tài)方法。將該String中的指定中的指定String的所有匹配項(xiàng)替換為其他指定的的所有匹配項(xiàng)替換為其他指定的 StringSplit 非靜態(tài)方法。返回包含該非靜態(tài)方法。返回包含該String中的子字符串(由指定中的子字符串(由指定Char或或

50、String數(shù)組的元素?cái)?shù)組的元素分隔)的分隔)的String數(shù)組數(shù)組Substring 非靜態(tài)方法。從此字符串中檢索子字符串非靜態(tài)方法。從此字符串中檢索子字符串ToLower 非靜態(tài)方法。返回該非靜態(tài)方法。返回該String轉(zhuǎn)換為小寫形式的副本轉(zhuǎn)換為小寫形式的副本ToUpper 非靜態(tài)方法。返回該非靜態(tài)方法。返回該String轉(zhuǎn)換為大寫形式的副本轉(zhuǎn)換為大寫形式的副本Trim 非靜態(tài)方法。從此字符串的開(kāi)始位置和末尾移除一組指定字符的所有匹配項(xiàng)非靜態(tài)方法。從此字符串的開(kāi)始位置和末尾移除一組指定字符的所有匹配項(xiàng)【例例2.7】 設(shè)計(jì)一個(gè)控制臺(tái)程序求用戶輸入的子串在主串中位置。設(shè)計(jì)一個(gè)控制臺(tái)程序求用戶輸

51、入的子串在主串中位置。using System;namespace Proj3_6 class Program static void Main(string args) String mstr,sstr; Console.Write(輸入主串輸入主串:); mstr = Console.ReadLine(); Console.Write(輸入子串輸入子串:); sstr = Console.ReadLine(); Console.WriteLine(主串長(zhǎng)度主串長(zhǎng)度=0,子串長(zhǎng)度子串長(zhǎng)度=1, mstr.Length, sstr.Length); if (String.Compare(mst

52、r, sstr) != 0) /使用靜態(tài)方法使用靜態(tài)方法 Console.WriteLine(位置位置:0, mstr.IndexOf(sstr); else Console.WriteLine(兩個(gè)字符串相同兩個(gè)字符串相同); Math類位于類位于System命名空間中,它包含了實(shí)現(xiàn)命名空間中,它包含了實(shí)現(xiàn)C#中中常用算術(shù)運(yùn)算功能的方法,這些方法都是靜態(tài)方法,可通常用算術(shù)運(yùn)算功能的方法,這些方法都是靜態(tài)方法,可通過(guò)過(guò)“Math.方法名方法名(參數(shù)參數(shù))”來(lái)使用。來(lái)使用。2.7.2 Math2.7.2 Math類類Convert類位于類位于System命名空間中,用于將一個(gè)值類命名空間中,用于

53、將一個(gè)值類型轉(zhuǎn)換成另一個(gè)值類型。這些方法都是靜態(tài)方法,可通型轉(zhuǎn)換成另一個(gè)值類型。這些方法都是靜態(tài)方法,可通過(guò)過(guò)“Convert.方法名方法名(參數(shù)參數(shù))”來(lái)使用。來(lái)使用。方法方法說(shuō)明說(shuō)明ToBoolean將數(shù)據(jù)轉(zhuǎn)換成將數(shù)據(jù)轉(zhuǎn)換成Boolean類型類型ToDataTime將數(shù)據(jù)轉(zhuǎn)換成日期時(shí)間類型將數(shù)據(jù)轉(zhuǎn)換成日期時(shí)間類型ToInt16將數(shù)據(jù)轉(zhuǎn)換成將數(shù)據(jù)轉(zhuǎn)換成16位整數(shù)類型位整數(shù)類型ToInt32將數(shù)據(jù)轉(zhuǎn)換成將數(shù)據(jù)轉(zhuǎn)換成32位整數(shù)類型位整數(shù)類型ToInt64將數(shù)據(jù)轉(zhuǎn)換成將數(shù)據(jù)轉(zhuǎn)換成64位整數(shù)類型位整數(shù)類型ToNumber將數(shù)據(jù)轉(zhuǎn)換成將數(shù)據(jù)轉(zhuǎn)換成Double類型類型ToObject將數(shù)據(jù)轉(zhuǎn)換成將數(shù)據(jù)轉(zhuǎn)

54、換成Object類型類型ToString將數(shù)據(jù)轉(zhuǎn)換成將數(shù)據(jù)轉(zhuǎn)換成string類型類型2.7.3 Convert2.7.3 Convert類類 DateTime結(jié)構(gòu)類位于結(jié)構(gòu)類位于System命名空間中,命名空間中,DateTime值值類型表示值范圍在公元類型表示值范圍在公元0001年年1月月1日午夜日午夜12:00:00到公元到公元9999年年12月月31日晚上日晚上11:59:59之間的日期和時(shí)間。之間的日期和時(shí)間。 可以通過(guò)以下語(yǔ)法格式定義一個(gè)日期時(shí)間變量:可以通過(guò)以下語(yǔ)法格式定義一個(gè)日期時(shí)間變量: DateTime 日期時(shí)間變量日期時(shí)間變量 = new DateTime(年年,月月,日日

55、,時(shí)時(shí),分分,秒秒);例如,以下語(yǔ)句定義了例如,以下語(yǔ)句定義了2個(gè)日期時(shí)間變量:個(gè)日期時(shí)間變量: DateTime d1 = new DateTime(2009,10,1); DateTime d2 = new DateTime(2009,10,1,8,15,20); 其中,其中,d1的值為的值為2009年年10月月1日零點(diǎn)零分零秒,日零點(diǎn)零分零秒,d2的值的值為為2009年年10月月1日日8點(diǎn)點(diǎn)15分分20秒。秒。2.7.4 DateTime2.7.4 DateTime結(jié)構(gòu)結(jié)構(gòu)屬性屬性 說(shuō)明說(shuō)明 Date 獲取此實(shí)例的日期部分獲取此實(shí)例的日期部分Day 獲取此實(shí)例所表示的日期為該月中的第幾天獲取此實(shí)例所表示的日期為該月中的第幾天DayOfWeek 獲取此實(shí)例所表示的日期是星期幾獲取此實(shí)例所

溫馨提示

  • 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)論