![第3章C程序設(shè)計基礎(chǔ)_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/14/b089184a-6efa-4678-9625-185bdb64d461/b089184a-6efa-4678-9625-185bdb64d4611.gif)
![第3章C程序設(shè)計基礎(chǔ)_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/14/b089184a-6efa-4678-9625-185bdb64d461/b089184a-6efa-4678-9625-185bdb64d4612.gif)
![第3章C程序設(shè)計基礎(chǔ)_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/14/b089184a-6efa-4678-9625-185bdb64d461/b089184a-6efa-4678-9625-185bdb64d4613.gif)
![第3章C程序設(shè)計基礎(chǔ)_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/14/b089184a-6efa-4678-9625-185bdb64d461/b089184a-6efa-4678-9625-185bdb64d4614.gif)
![第3章C程序設(shè)計基礎(chǔ)_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/14/b089184a-6efa-4678-9625-185bdb64d461/b089184a-6efa-4678-9625-185bdb64d4615.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第第3章章C#程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ) 3.1 標(biāo)識符標(biāo)識符3.2 C#中數(shù)據(jù)類型中數(shù)據(jù)類型3.3 C#中的變量和常量中的變量和常量3.4 類型轉(zhuǎn)換類型轉(zhuǎn)換 3.5 結(jié)構(gòu)類型和枚舉類型結(jié)構(gòu)類型和枚舉類型3.6 C#運算符和表達(dá)式運算符和表達(dá)式3.7 C#中常用類和結(jié)構(gòu)中常用類和結(jié)構(gòu)3.1 標(biāo)識符標(biāo)識符 C#的標(biāo)識符名稱必須遵守以下規(guī)則:的標(biāo)識符名稱必須遵守以下規(guī)則:(1)所有的標(biāo)識符只能由字母、數(shù)字和下劃線這)所有的標(biāo)識符只能由字母、數(shù)字和下劃線這3類字符類字符組成,且第一個字符必須為字母或下劃線。組成,且第一個字符必須為字母或下劃線。(2)標(biāo)識符中不能包含空格、標(biāo)點符號、運算符等其他)標(biāo)識符
2、中不能包含空格、標(biāo)點符號、運算符等其他符號。符號。(3)標(biāo)識符嚴(yán)格區(qū)分大小寫。)標(biāo)識符嚴(yán)格區(qū)分大小寫。(4)標(biāo)識符不能與)標(biāo)識符不能與C#關(guān)鍵字名相同。關(guān)鍵字名相同。(5)標(biāo)識符不能與)標(biāo)識符不能與C#中的類庫名相同。中的類庫名相同。 a12_c 1abc 3.2 C#中數(shù)據(jù)類型中數(shù)據(jù)類型 數(shù)據(jù)類型 值類型 引用類型 簡單類型 結(jié)構(gòu)類型 枚舉類型 整數(shù)類型 字符類型 布爾類型 實數(shù)類型 sbyte byte short ushort int uint long ulong floate double decimal 類 委托 數(shù)組 接口 C#中數(shù)據(jù)類型分類中數(shù)據(jù)類型分類 object是是C#中
3、所有類型(包括所有的值類型和引用類型)的中所有類型(包括所有的值類型和引用類型)的基類,基類,C#中的所有類型都直接或間接地從中的所有類型都直接或間接地從object類中繼承而類中繼承而來。因此,對一個來。因此,對一個object的變量可以賦予任何類型的值。的變量可以賦予任何類型的值。 3.2.1 值類型值類型 值類型的變量內(nèi)含變量值本身,值類型的變量內(nèi)含變量值本身,C#的值類型可以分為的值類型可以分為簡單類型、結(jié)構(gòu)類型和枚舉類型。下面僅介紹簡單類型。簡單類型、結(jié)構(gòu)類型和枚舉類型。下面僅介紹簡單類型。 1. 整數(shù)類型整數(shù)類型類型標(biāo)識符類型標(biāo)識符說明說明占用位數(shù)占用位數(shù)取值范圍取值范圍示例示例s
4、byte帶符號字節(jié)型帶符號字節(jié)型8-128127sbyte i=10 ;byte無符號字節(jié)型無符號字節(jié)型80255byte i=10 ;short帶符號短整型帶符號短整型16-32,76832,767short i=10 ;ushort無符號短整型無符號短整型16065,535ushort i=10 ;int帶符號整型帶符號整型32-2,147,483,6482,147,483,647int i=10 ;uint無符號整型無符號整型3204,294,967,295uint i=10 ;uint i=10U ;long帶符號長整型帶符號長整型64-9,223,372,036,854,775,80
5、89,223,372,036,854,775,807long i=10 ;long i=10L ;ulong無符號長整型無符號長整型64018,446,744,073,709,551,615ulong i=16 ;ulong i=16U ;ulong i=16L ;ulong i=16UL ;Random類類nRandom類位于類位于System命名空間中命名空間中n需要初始化,如下:需要初始化,如下:Random rnd1 = new Random(); n常用方法:常用方法:Next()返回非負(fù)隨機數(shù)。返回非負(fù)隨機數(shù)。Next(Int32)返回一個小于所指定最大值的非負(fù)隨機數(shù)。返回一個小于
6、所指定最大值的非負(fù)隨機數(shù)。Next(Int32, Int32)返回一個指定范圍內(nèi)的隨機數(shù)。返回一個指定范圍內(nèi)的隨機數(shù)。例如:例如: rnd1.Next(1,100)示例n點按鈕就跑在按鈕對象的事件 MouseHover中編寫代碼:Random r = new Random();int x = r.Next(200);int y = r.Next(300);button1.Location = new Point(x,y)2. 實數(shù)類型實數(shù)類型類型標(biāo)識符類型標(biāo)識符說明說明取值范圍取值范圍示例示例float單精度浮點數(shù)單精度浮點數(shù)1.510-45 3.41038,精度為,精度為7位數(shù)位數(shù)float
7、 f=1.23F ;double雙精度浮點數(shù)雙精度浮點數(shù)5.010-324 1.710308,精度為,精度為15到到16位數(shù)位數(shù)double d=1.23 ;decimal固定精度的浮點數(shù)固定精度的浮點數(shù)1.010-28到到7.91028的之間,的之間,精度為精度為28至至29位有效數(shù)字位有效數(shù)字decimal d=1.23M ;3 字符類型字符類型 例如,可以采用如下方式字符變量賦值:例如,可以采用如下方式字符變量賦值: char c=H ; / 字符字符H char c=x0048; / 字符字符H,十六進(jìn)制轉(zhuǎn)義符(前綴為,十六進(jìn)制轉(zhuǎn)義符(前綴為x) char c=u0048; / 字符字
8、符H,Unicode表示形式(前綴為表示形式(前綴為u) char c=r; / 回車,轉(zhuǎn)義字符回車,轉(zhuǎn)義字符 在表示一個字符常數(shù)時,單引號內(nèi)的有效字符數(shù)量必須且只能在表示一個字符常數(shù)時,單引號內(nèi)的有效字符數(shù)量必須且只能是一個,而且不能是單引號或者反斜杠(是一個,而且不能是單引號或者反斜杠()。)。計算園面積double s, r;const double PI = 3.1415926; /常量Console.WriteLine(“輸入圓半徑:);r = Convert.ToDouble(Console.ReadLine();s = PI * Math.Pow(r, 2);Console.Wr
9、iteLine(“面積為:0, s);n假設(shè)在平面內(nèi),有一個三角形,邊長分別為a、b、c,三角形的面積S可由以下公式求得:n而公式里的p為半周長(周長的一半):n 小數(shù)示例3.7.2 Math類類 Math類位于類位于System命名空間中,它包含了實現(xiàn)命名空間中,它包含了實現(xiàn)C#中中常用算術(shù)運算功能的方法,這些方法都是靜態(tài)方法,可通常用算術(shù)運算功能的方法,這些方法都是靜態(tài)方法,可通過過“Math.方法名方法名(參數(shù)參數(shù))”來使用。來使用。4. 布爾類型布爾類型 布爾類型數(shù)據(jù)用于表示邏輯真和邏輯假,布爾類型的布爾類型數(shù)據(jù)用于表示邏輯真和邏輯假,布爾類型的類型標(biāo)識符是類型標(biāo)識符是bool。 注意
10、:在注意:在C#語言中,語言中,bool類型不能像類型不能像C+語言那樣語言那樣可能直接轉(zhuǎn)換為可能直接轉(zhuǎn)換為int類型,例如,類型,例如,int a=(23);在在C/C+中中都是正確的,但在都是正確的,但在C中不允許這樣,會出現(xiàn)中不允許這樣,會出現(xiàn)“無法將無法將類型類型bool隱式轉(zhuǎn)換為隱式轉(zhuǎn)換為int”的編譯錯誤。的編譯錯誤。3.4 類型轉(zhuǎn)換類型轉(zhuǎn)換 值類型之間的轉(zhuǎn)換有隱式轉(zhuǎn)換和顯式轉(zhuǎn)換。另外裝箱和拆值類型之間的轉(zhuǎn)換有隱式轉(zhuǎn)換和顯式轉(zhuǎn)換。另外裝箱和拆箱也屬于一種類型轉(zhuǎn)換。箱也屬于一種類型轉(zhuǎn)換。 3.4.1 隱式轉(zhuǎn)換隱式轉(zhuǎn)換 隱式轉(zhuǎn)換是系統(tǒng)默認(rèn)的、不需要加以聲明就可以進(jìn)行的轉(zhuǎn)隱式轉(zhuǎn)換是系統(tǒng)默
11、認(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、decimalu
12、longfloat、double、decimalcharushort、int、uint、long、ulong、float、double、decimalfloatdouble3.4.2 顯式轉(zhuǎn)換顯式轉(zhuǎn)換 顯式轉(zhuǎn)換又叫強制類型轉(zhuǎn)換,與隱式轉(zhuǎn)換相反,顯式轉(zhuǎn)換顯式轉(zhuǎn)換又叫強制類型轉(zhuǎn)換,與隱式轉(zhuǎn)換相反,顯式轉(zhuǎn)換需要用戶明確地指定轉(zhuǎn)換類型,一般在不存在該類型的隱式需要用戶明確地指定轉(zhuǎn)換類型,一般在不存在該類型的隱式轉(zhuǎn)換時才使用。格式如下:轉(zhuǎn)換時才使用。格式如下: (類型標(biāo)識符類型標(biāo)識符)表達(dá)式表達(dá)式 其作用是將其作用是將“表達(dá)式表達(dá)式”值的類型轉(zhuǎn)換為值的類型轉(zhuǎn)換為“類型標(biāo)識符類型標(biāo)識符”的的類型。例如:類
13、型。例如: (int)1.23 /把把double類型的類型的1.23轉(zhuǎn)換成轉(zhuǎn)換成int類型,結(jié)果為類型,結(jié)果為1 需要提醒注意以下幾點:需要提醒注意以下幾點: (1)顯式轉(zhuǎn)換可能會導(dǎo)致錯誤。進(jìn)行這種轉(zhuǎn)換時編譯器將)顯式轉(zhuǎn)換可能會導(dǎo)致錯誤。進(jìn)行這種轉(zhuǎn)換時編譯器將對轉(zhuǎn)換進(jìn)行溢出檢測。如果有溢出說明轉(zhuǎn)換失敗,就表明源對轉(zhuǎn)換進(jìn)行溢出檢測。如果有溢出說明轉(zhuǎn)換失敗,就表明源類型不是一個合法的目標(biāo)類型,轉(zhuǎn)換就無法進(jìn)行。類型不是一個合法的目標(biāo)類型,轉(zhuǎn)換就無法進(jìn)行。 (2)對于從)對于從float、double、decimal到整型數(shù)據(jù)的轉(zhuǎn)換,將到整型數(shù)據(jù)的轉(zhuǎn)換,將通過丟棄小數(shù)部分得到,如果這個整型值超出目標(biāo)
14、類型的范通過丟棄小數(shù)部分得到,如果這個整型值超出目標(biāo)類型的范圍,則出現(xiàn)轉(zhuǎn)換異常。圍,則出現(xiàn)轉(zhuǎn)換異常。 【例例3.1】 設(shè)計一個控制臺程序說明類型轉(zhuǎn)換的應(yīng)用。設(shè)計一個控制臺程序說明類型轉(zhuǎn)換的應(yīng)用。using System;namespace Proj3_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=1:f,c=2, i, d, c); i1 = (int)d; /強制類型轉(zhuǎn)換強制
15、類型轉(zhuǎn)換 d1 = i;/隱式類型轉(zhuǎn)換隱式類型轉(zhuǎn)換 c1 = (char)i; /強制類型轉(zhuǎn)換強制類型轉(zhuǎn)換 Console.WriteLine(i1=0:d5,d1=1:f,c1=2, i1, d1, c1); i2 = c; /隱式類型轉(zhuǎn)換隱式類型轉(zhuǎn)換 d2 = (int)d; /強制類型轉(zhuǎn)換強制類型轉(zhuǎn)換,轉(zhuǎn)換成整數(shù)后再隱式轉(zhuǎn)為轉(zhuǎn)換成整數(shù)后再隱式轉(zhuǎn)為double類型類型 c2 = (char)d; /強制類型轉(zhuǎn)換強制類型轉(zhuǎn)換 Console.WriteLine(i2=0:d5,d2=1:f,c2=2, i2, d2, c2); 3.7.3 Convert類類Convert類位于類位于Syst
16、em命名空間中,用于將一個值類命名空間中,用于將一個值類型轉(zhuǎn)換成另一個值類型。這些方法都是靜態(tài)方法,可通型轉(zhuǎn)換成另一個值類型。這些方法都是靜態(tài)方法,可通過過“Convert.方法名方法名(參數(shù)參數(shù))”來使用。來使用。方法方法說明說明ToBoolean將數(shù)據(jù)轉(zhuǎn)換成將數(shù)據(jù)轉(zhuǎn)換成Boolean類型類型ToDataTime將數(shù)據(jù)轉(zhuǎn)換成日期時間類型將數(shù)據(jù)轉(zhuǎn)換成日期時間類型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)換成Doubl
17、e類型類型ToObject將數(shù)據(jù)轉(zhuǎn)換成將數(shù)據(jù)轉(zhuǎn)換成Object類型類型ToString將數(shù)據(jù)轉(zhuǎn)換成將數(shù)據(jù)轉(zhuǎn)換成string類型類型3.3 C#中的變量和常量中的變量和常量3.3.1 變量變量1. 變量定義變量定義 在在C#程序里使用某個變量之前,必須要告訴編譯器它程序里使用某個變量之前,必須要告訴編譯器它是一個什么樣的變量,因此要對變量進(jìn)行定義。定義變量是一個什么樣的變量,因此要對變量進(jìn)行定義。定義變量的方法如下:的方法如下: 訪問修飾符訪問修飾符 數(shù)據(jù)類型數(shù)據(jù)類型 變量名變量名 = 初始值初始值;例如:例如: string name=王華王華; int age=20;也可以同時聲明一個或多個
18、給定類型的變量,例如:也可以同時聲明一個或多個給定類型的變量,例如: int a=1,b=2,c=3; 定義一個變量,系統(tǒng)就會在內(nèi)存中開辟相應(yīng)大小的空定義一個變量,系統(tǒng)就會在內(nèi)存中開辟相應(yīng)大小的空間來存放數(shù)據(jù)??梢詮南旅骈g來存放數(shù)據(jù)。可以從下面4個層面來理解變量。個層面來理解變量。l 變量名稱變量名稱l 變量的值變量的值l 變量的數(shù)據(jù)類型變量的數(shù)據(jù)類型l 變量的作用域變量的作用域例如:例如:int x;int y=2;x=y;3.3.3 常量常量1. 直接常量直接常量 直接常量是指把程序中不變的量直接硬編碼為數(shù)值或直接常量是指把程序中不變的量直接硬編碼為數(shù)值或字符串值,例如,以下都是直接常量:
19、字符串值,例如,以下都是直接常量: 100 /整型直接常量整型直接常量 1.23e5 /浮點型直接常量浮點型直接常量2. 符號常量符號常量 符號常量是通過關(guān)鍵字符號常量是通過關(guān)鍵字const聲明的常量,包括常量的聲明的常量,包括常量的名稱和它的值。常量聲明的格式如下:名稱和它的值。常量聲明的格式如下: const 數(shù)據(jù)類型數(shù)據(jù)類型 常量名常量名=初始值初始值; 其中,其中,“常量名常量名”必須是必須是C#的合法標(biāo)識符,在程序中的合法標(biāo)識符,在程序中通過常量名來訪問該常量。通過常量名來訪問該常量?!邦愋蜆?biāo)識符類型標(biāo)識符”指示了所定指示了所定義的常量的數(shù)據(jù)類型,而義的常量的數(shù)據(jù)類型,而“初始值初始
20、值”是所定義的常量的是所定義的常量的值。值。 例如:例如: const double PI=3.14159265;3.5 結(jié)構(gòu)類型和枚舉類型結(jié)構(gòu)類型和枚舉類型3.5.1 結(jié)構(gòu)類型結(jié)構(gòu)類型1. 結(jié)構(gòu)類型的聲明結(jié)構(gòu)類型的聲明 結(jié)構(gòu)類型由若干結(jié)構(gòu)類型由若干“成員成員”組成的。數(shù)據(jù)成員稱為字段,組成的。數(shù)據(jù)成員稱為字段,每個字段都有自已的數(shù)據(jù)類型。聲明結(jié)構(gòu)類型的一般格式每個字段都有自已的數(shù)據(jù)類型。聲明結(jié)構(gòu)類型的一般格式如下:如下: struct 結(jié)構(gòu)類型名稱結(jié)構(gòu)類型名稱 字段訪問修飾符字段訪問修飾符 數(shù)據(jù)類型數(shù)據(jù)類型 字段字段1; 字段訪問修飾符字段訪問修飾符 數(shù)據(jù)類型數(shù)據(jù)類型 字段字段2; . 字段
21、訪問修飾符字段訪問修飾符 數(shù)據(jù)類型數(shù)據(jù)類型 字段字段n; ;例如,以下聲明一個具有姓名和年齡的結(jié)構(gòu)體類型例如,以下聲明一個具有姓名和年齡的結(jié)構(gòu)體類型Student:struct Student/聲明結(jié)構(gòu)類型聲明結(jié)構(gòu)類型Student public int xh;/學(xué)號學(xué)號 public string xm;/姓名姓名 public string xb;/性別性別 public int nl;/年齡年齡 public string bh;/班號班號;2. 結(jié)構(gòu)類型變量的定義結(jié)構(gòu)類型變量的定義 聲明一個結(jié)構(gòu)類型后,可以定義該結(jié)構(gòu)類型的變量聲明一個結(jié)構(gòu)類型后,可以定義該結(jié)構(gòu)類型的變量(簡稱為結(jié)構(gòu)變量
22、)。定義結(jié)構(gòu)變量的一般格式如下:(簡稱為結(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聲明后,定義它的聲明后,定義它的兩個變量如下:兩個變量如下: Student s1,s2;3. 結(jié)構(gòu)變量的使用結(jié)構(gòu)變量的使用1)訪問結(jié)構(gòu)變量字段)訪問結(jié)構(gòu)變量字段 訪問結(jié)構(gòu)變量字段的一般格式如下:訪問結(jié)構(gòu)變量字段的一般格式如下: 結(jié)構(gòu)變量名結(jié)構(gòu)變量名.字段名字段名 例如,例如,s1.xh表示結(jié)構(gòu)變量表示結(jié)構(gòu)變量s1的學(xué)號,的學(xué)號,s2.xm表示結(jié)構(gòu)變量表示結(jié)構(gòu)變量s2的姓名。的姓名。 結(jié)構(gòu)體變量的字段可以在程序中單獨使
23、用,與普通變量完結(jié)構(gòu)體變量的字段可以在程序中單獨使用,與普通變量完全相同。全相同。2)結(jié)構(gòu)變量的賦值)結(jié)構(gòu)變量的賦值 結(jié)構(gòu)變量的賦值有兩種方式。結(jié)構(gòu)變量的賦值有兩種方式。 結(jié)構(gòu)變量的字段賦值:使用方法與普通變量相同。結(jié)構(gòu)變量的字段賦值:使用方法與普通變量相同。 結(jié)構(gòu)變量之間賦值:要求賦值的兩個結(jié)構(gòu)變量必須類型結(jié)構(gòu)變量之間賦值:要求賦值的兩個結(jié)構(gòu)變量必須類型相同。例如:相同。例如: s1=s2;這樣這樣s2的所有字段值賦給的所有字段值賦給s1的對應(yīng)字段。的對應(yīng)字段。 【例例3.2】 設(shè)計一個控制臺程序說明結(jié)構(gòu)類型的應(yīng)用。設(shè)計一個控制臺程序說明結(jié)構(gòu)類型的應(yīng)用。using System;namesp
24、ace Proj3_2 class Program struct Student /結(jié)構(gòu)類型聲明應(yīng)放在結(jié)構(gòu)類型聲明應(yīng)放在Main函數(shù)的外面函數(shù)的外面 public int xh; /學(xué)號學(xué)號 public string xm; /姓名姓名 public string xb; /性別性別 public int nl; /年齡年齡 public string bh; /班號班號 static void Main(string args) Student s1,s2;/定義兩個結(jié)構(gòu)類型變量定義兩個結(jié)構(gòu)類型變量 s1.xh = 101; s1.xm = 李明李明; s1.xb = 男男; s1.nl
25、= 20; s1.bh = 07001; Console.WriteLine(學(xué)號學(xué)號:0,姓名姓名:1,性別性別:2,年齡年齡:3, 班班號號: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é)號學(xué)號:0,姓名姓名:1,性別性別:2,年齡年齡:3, 班班號號:4, s2.xh, s2.xm, s2.xb, s2.nl, s2.bh); Console.WriteLine(學(xué)號學(xué)號:0,姓名姓名:1,性別性別:2,年齡年
26、齡:3,班班號號:4, s2.xh, s2.xm, s2.xb, s2.nl, s2.bh); / 值類型,值類型, 修改修改s2不影響s13.5.2 枚舉類型枚舉類型 枚舉類型也是一種自定義數(shù)據(jù)類型,它允許用符號代表枚舉類型也是一種自定義數(shù)據(jù)類型,它允許用符號代表數(shù)據(jù)。枚舉是指程序中某個變量具有一組確定的值,通過數(shù)據(jù)。枚舉是指程序中某個變量具有一組確定的值,通過“枚舉枚舉”可以將其值一一列出來??梢詫⑵渲狄灰涣谐鰜?。1. 枚舉類型的聲明枚舉類型的聲明 枚舉類型使用枚舉類型使用enum關(guān)鍵字聲明,其一般語法形式如下:關(guān)鍵字聲明,其一般語法形式如下: enum 枚舉名枚舉名枚舉成員枚舉成員1,枚
27、舉成員枚舉成員2,其中,其中,enum是結(jié)構(gòu)類型的關(guān)鍵字。例如,以下聲明一個名是結(jié)構(gòu)類型的關(guān)鍵字。例如,以下聲明一個名稱為稱為color的表示顏色的枚舉類型:的表示顏色的枚舉類型: enum Color Red,Green,Blue,White,Black 在聲明枚舉類型后,可以通過枚舉名來訪問枚舉成員,在聲明枚舉類型后,可以通過枚舉名來訪問枚舉成員,其使用語法如下:其使用語法如下: 枚舉名枚舉名.枚舉成員枚舉成員2. 枚舉成員的賦值枚舉成員的賦值 在聲明的枚舉類型中,每一個枚舉成員都有一個相對在聲明的枚舉類型中,每一個枚舉成員都有一個相對應(yīng)的常量值,默認(rèn)情況下應(yīng)的常量值,默認(rèn)情況下C#規(guī)定第
28、規(guī)定第1個枚舉成員的值取個枚舉成員的值取0,它后面的每一個枚舉成員的值按加它后面的每一個枚舉成員的值按加1遞增。例如,前面遞增。例如,前面Color中,中,Red值為值為0,Green值為值為1,Blue值為值為2,依次類,依次類推。推。 可以為一個或多個枚舉成員賦整型值,可以為一個或多個枚舉成員賦整型值,當(dāng)某個枚舉成當(dāng)某個枚舉成員賦值后,其后的枚舉成員沒有賦值的話,自動在前一個員賦值后,其后的枚舉成員沒有賦值的話,自動在前一個枚舉成員值之上加枚舉成員值之上加1作為其值作為其值。例如:。例如: enum Color Red=0, Green, Blue=3, White, Black=1;則這
29、些枚舉成員的值分別為則這些枚舉成員的值分別為0、1、3、4、1。3. 枚舉類型變量的定義枚舉類型變量的定義 聲明一個枚舉類型后,可以定義該枚舉類型的變量(簡聲明一個枚舉類型后,可以定義該枚舉類型的變量(簡稱為枚舉變量)。定義枚舉變量的一般格式如下:稱為枚舉變量)。定義枚舉變量的一般格式如下: 枚舉類型枚舉類型 枚舉變量枚舉變量; 例如,在前面的枚舉類型例如,在前面的枚舉類型Color聲明后,定義它的兩個變聲明后,定義它的兩個變量如下:量如下: Color c1,c2;1)枚舉變量的賦值)枚舉變量的賦值枚舉變量賦值的語法格式如下:枚舉變量賦值的語法格式如下: 枚舉變量枚舉變量=枚舉名枚舉名.枚舉
30、成員枚舉成員例如:例如: c1=Color.Red;2)枚舉變量的訪問)枚舉變量的訪問 枚舉變量像普通變量一樣直接訪問。枚舉變量像普通變量一樣直接訪問。3.7.4 DateTime結(jié)構(gòu)結(jié)構(gòu) DateTime結(jié)構(gòu)類位于結(jié)構(gòu)類位于System命名空間中,命名空間中,DateTime值值類型表示值范圍在公元類型表示值范圍在公元0001年年1月月1日午夜日午夜12:00:00到公元到公元9999年年12月月31日晚上日晚上11:59:59之間的日期和時間。之間的日期和時間。 可以通過以下語法格式定義一個日期時間變量:可以通過以下語法格式定義一個日期時間變量: DateTime 日期時間變量日期時間變量
31、 = new DateTime(年年,月月,日日,時時,分分,秒秒);例如,以下語句定義了例如,以下語句定義了2個日期時間變量:個日期時間變量: DateTime d1 = new DateTime(2009,10,1); DateTime d2 = new DateTime(2009,10,1,8,15,20); 其中,其中,d1的值為的值為2009年年10月月1日零點零分零秒,日零點零分零秒,d2的值的值為為2009年年10月月1日日8點點15分分20秒。秒。屬性屬性 說明說明 Date 獲取此實例的日期部分獲取此實例的日期部分Day 獲取此實例所表示的日期為該月中的第幾天獲取此實例所表示
32、的日期為該月中的第幾天DayOfWeek 獲取此實例所表示的日期是星期幾獲取此實例所表示的日期是星期幾DayOfYear 獲取此實例所表示的日期是該年中的第幾天獲取此實例所表示的日期是該年中的第幾天Hour 獲取此實例所表示日期的小時部分獲取此實例所表示日期的小時部分Millisecond 獲取此實例所表示日期的毫秒部分獲取此實例所表示日期的毫秒部分Minute 獲取此實例所表示日期的分鐘部分獲取此實例所表示日期的分鐘部分Month 獲取此實例所表示日期的月份部分獲取此實例所表示日期的月份部分Now 獲取一個獲取一個DateTime對象,該對象設(shè)置為此計算機上的當(dāng)前日期和時間,對象,該對象設(shè)置
33、為此計算機上的當(dāng)前日期和時間,表示為本地時間表示為本地時間Second 獲取此實例所表示日期的秒部分獲取此實例所表示日期的秒部分TimeOfDay 獲取此實例的當(dāng)天的時間獲取此實例的當(dāng)天的時間Today 獲取當(dāng)前日期獲取當(dāng)前日期Year 獲取此實例所表示日期的年份部分獲取此實例所表示日期的年份部分方法方法說明說明AddDays非靜態(tài)方法。將指定的天數(shù)加到此實例的值上非靜態(tài)方法。將指定的天數(shù)加到此實例的值上AddHours非靜態(tài)方法。將指定的小時數(shù)加到此實例的值上非靜態(tài)方法。將指定的小時數(shù)加到此實例的值上AddMilliseconds非靜態(tài)方法。將指定的毫秒數(shù)加到此實例的值上非靜態(tài)方法。將指定的
34、毫秒數(shù)加到此實例的值上AddMinutes非靜態(tài)方法。將指定的分鐘數(shù)加到此實例的值上非靜態(tài)方法。將指定的分鐘數(shù)加到此實例的值上AddMonths非靜態(tài)方法。將指定的月份數(shù)加到此實例的值上非靜態(tài)方法。將指定的月份數(shù)加到此實例的值上AddSeconds非靜態(tài)方法。將指定的秒數(shù)加到此實例的值上非靜態(tài)方法。將指定的秒數(shù)加到此實例的值上AddYears非靜態(tài)方法。將指定的年份數(shù)加到此實例的值上非靜態(tài)方法。將指定的年份數(shù)加到此實例的值上Compare靜態(tài)方法。比較靜態(tài)方法。比較DateTime的兩個實例,并返回它們相對值的指示的兩個實例,并返回它們相對值的指示CompareTo非靜態(tài)方法。將此實例與指定的
35、對象或值類型進(jìn)行比較,并返回二者相非靜態(tài)方法。將此實例與指定的對象或值類型進(jìn)行比較,并返回二者相對值的指示對值的指示DaysInMonth靜態(tài)方法。返回指定年和月中的天數(shù)靜態(tài)方法。返回指定年和月中的天數(shù)IsLeapYear靜態(tài)方法。返回指定的年份是否為閏年的指示靜態(tài)方法。返回指定的年份是否為閏年的指示Parse靜態(tài)方法。將日期和時間的指定字符串表示轉(zhuǎn)換成其等效的靜態(tài)方法。將日期和時間的指定字符串表示轉(zhuǎn)換成其等效的DateTime星期DateTime today, after30;DayOfWeek w;int d;today = DateTime.Now;w = today.DayOfWeek
36、;d = today.DayOfYear;after30 = today.AddDays(30);Console.WriteLine(“今天是0,一年中的第1天,30天后是2:yyyy-MM-dd, w, d, after30);【例例3.8】 設(shè)計一個控制臺程序說明設(shè)計一個控制臺程序說明DataTime結(jié)構(gòu)的使用。結(jié)構(gòu)的使用。 using System;namespace Proj3_7 class Program static void Main(string args) DateTime d1 = DateTime.Now; /定義當(dāng)前日期時間變量定義當(dāng)前日期時間變量 DateTime
37、d2 = new DateTime(2009, 10, 1); /定義一個日期時間變量定義一個日期時間變量 Console.WriteLine(d1:0,d1); int i = d1.Year;/求求d1的年的年 int j = d1.Month;/求求d1的月的月 int k = d1.Day;/求求d1的日的日 int h = d1.Hour;/求求d1的時的時 int m = d1.Minute;/求求d1的分的分 int s = d1.Second;/求求d1的秒的秒 Console.WriteLine(d1:0年年1月月2日日3時時4分分5秒秒,i,j,k,h,m,s); Cons
38、ole.WriteLine(d2:0,d2); Console.WriteLine(相距時間相距時間:0,d2 - d1); DateTime d3 = d1.AddDays(100); /d3為為d1的的100天后的日期天后的日期 Console.WriteLine(d3:0,d3); Console.WriteLine(DateTime.IsLeapYear(i);/靜態(tài)方法調(diào)用靜態(tài)方法調(diào)用 Console.WriteLine(DateTime.IsLeapYear(d2.Year); 3.6 C#運算符和表達(dá)式運算符和表達(dá)式3.6.1 算術(shù)運算符算術(shù)運算符符號符號意義意義示例示例+加法運
39、算加法運算a+b減法減法/取負(fù)運算取負(fù)運算ab*乘法運算乘法運算a*b/除法運算除法運算a/b%取余數(shù)取余數(shù)a%b+累加累加a+遞減遞減a 3.6.2 字符串運算符字符串運算符 字符串運算符只有一個,就是加號(字符串運算符只有一個,就是加號(+)。它除了作)。它除了作為算術(shù)運算符之外,還可以將字符串連接起來,變成合為算術(shù)運算符之外,還可以將字符串連接起來,變成合并的新字符串。例如:并的新字符串。例如: string s=Hello; s=s+, World.; Console.WriteLine(s); /輸出:輸出:Hello, World.3.6.3 賦值運算符賦值運算符 賦值運算符(賦值
40、運算符(=)用于改變變量的值,它先求出右側(cè)表)用于改變變量的值,它先求出右側(cè)表達(dá)式的結(jié)果,然后再將結(jié)果賦給左側(cè)的變量。達(dá)式的結(jié)果,然后再將結(jié)果賦給左側(cè)的變量。 符號符號意義意義示例示例+=加賦值加賦值a+=b等價于等價于a=a+b=減賦值減賦值a-=b等價于等價于a=a-b*=乘賦值乘賦值a*=b等價于等價于a=a*b/=除賦值除賦值a/=b等價于等價于a=a/b%=取模賦值取模賦值a%=b等價于等價于a=a%b=左移賦值左移賦值a=b等價于等價于a=a=右移賦值右移賦值a=b等價于等價于a=ab&=與賦值與賦值a&=b等價于等價于a=a&b=異或賦值異或賦值a=b等價
41、于等價于a=ab|=或賦值或賦值a|=b等價于等價于a=a|b3.6.4 關(guān)系運算符關(guān)系運算符符號符號意義意義示例示例小于小于23為為true=小于等于小于等于2大于大于23為為false=大于等于大于等于2=3為為false=等于等于2=3為為false!=不等于不等于2!=3為為true3.6.5 邏輯運算符邏輯運算符符號符號意義意義示例示例!邏輯非邏輯非!(23)為為false&邏輯與邏輯與(34)為為true|邏輯或邏輯或(34)為為true3.5.6 位運算符位運算符符號符號意義意義示例示例按位求反按位求反!2左移左移8右移右移82&按位與按位與8&5按位異或
42、按位異或85|按位或按位或8|53.6.7 條件運算符條件運算符 條件運算符是一個三元運算符,每個操作數(shù)同時又是表條件運算符是一個三元運算符,每個操作數(shù)同時又是表達(dá)式的值。由條件運算符構(gòu)成的表達(dá)式稱為條件表達(dá)式。達(dá)式的值。由條件運算符構(gòu)成的表達(dá)式稱為條件表達(dá)式。條件運算符的使用格式如下:條件運算符的使用格式如下: 表達(dá)式表達(dá)式1 ? 表達(dá)式表達(dá)式2 : 表達(dá)式表達(dá)式3 它的計算方式為,先計算它的計算方式為,先計算“表達(dá)式表達(dá)式1”(必須為布爾值)(必須為布爾值)的值,如果其值的值,如果其值true,則,則“表達(dá)式表達(dá)式2”的值作為整個表達(dá)式的值作為整個表達(dá)式的最終結(jié)果;否則的最終結(jié)果;否則“表
43、達(dá)式表達(dá)式3”的值作為整個表達(dá)式的值。的值作為整個表達(dá)式的值。 例如,以下表達(dá)式返回例如,以下表達(dá)式返回a和和b中的最大值:中的最大值: max=ab ? a : b計算過程是,當(dāng)計算過程是,當(dāng)ab,max= a; 否則否則max=b。3.6.8 其他運算符其他運算符1. is運算符運算符is運算符用于檢查表達(dá)式是否是指定的類型,如果是,運算符用于檢查表達(dá)式是否是指定的類型,如果是,其結(jié)果為其結(jié)果為true,否則結(jié)果為,否則結(jié)果為false。 2. sizeof運算符運算符sizeof運算符求值類型數(shù)據(jù)在內(nèi)存中占用的字節(jié)數(shù)。運算符求值類型數(shù)據(jù)在內(nèi)存中占用的字節(jié)數(shù)。sizeof運算符的語法格式如
44、下:運算符的語法格式如下:sizeof(類型標(biāo)識符類型標(biāo)識符)其結(jié)果為一個整數(shù),表示指定類型的數(shù)據(jù)在內(nèi)存分配其結(jié)果為一個整數(shù),表示指定類型的數(shù)據(jù)在內(nèi)存分配的字節(jié)數(shù)。該運算符只能作用于值類型或值類型變量。的字節(jié)數(shù)。該運算符只能作用于值類型或值類型變量。3. typeof運算符運算符該運算符用于獲得指定數(shù)據(jù)類型的說明。例如,若聲該運算符用于獲得指定數(shù)據(jù)類型的說明。例如,若聲明了結(jié)構(gòu)明了結(jié)構(gòu)Student,則以下語句輸出聲明,則以下語句輸出聲明Student結(jié)構(gòu)類型的結(jié)構(gòu)類型的程序名等。程序名等。Console.WriteLine(typeof(Student);4. new運算符運算符該運算符用于
45、創(chuàng)建一個類的對象。該運算符用于創(chuàng)建一個類的對象。3.6.9 運算符的優(yōu)先級運算符的優(yōu)先級 運算符的優(yōu)先級是指在表達(dá)式中哪一個運算符應(yīng)該首先運算符的優(yōu)先級是指在表達(dá)式中哪一個運算符應(yīng)該首先計算。計算。 C#根據(jù)運算符的優(yōu)先級確定表達(dá)式的求值順序:優(yōu)先級根據(jù)運算符的優(yōu)先級確定表達(dá)式的求值順序:優(yōu)先級高的運算先做,優(yōu)先級低的操作后做,相同優(yōu)先級的操作高的運算先做,優(yōu)先級低的操作后做,相同優(yōu)先級的操作從左到右依次做,同時用小括號控制運算順序,任何在小從左到右依次做,同時用小括號控制運算順序,任何在小括號內(nèi)的運算最優(yōu)先進(jìn)行。括號內(nèi)的運算最優(yōu)先進(jìn)行。 3.2.2 引用類型引用類型引用類型也稱為參考類型。和
46、值類型相比,引用類引用類型也稱為參考類型。和值類型相比,引用類型的變量不直接存儲所包含的值,而是指向它所要存儲型的變量不直接存儲所包含的值,而是指向它所要存儲的值。類似的值。類似C中的指針。類,字符串,數(shù)組,委托都是中的指針。類,字符串,數(shù)組,委托都是引用類型引用類型 1. object類類 object是是C#中所有類型(包括所有的值類型和引用類型)中所有類型(包括所有的值類型和引用類型)的基類,的基類,C#中的所有類型都直接或間接地從中的所有類型都直接或間接地從object類中繼承類中繼承而來。因此,對一個而來。因此,對一個object的變量可以賦予任何類型的值。的變量可以賦予任何類型的值
47、。 float f=1.23; object obj1; /定義定義obj1對象對象 obj1=f; object obj2=China;/定義定義obj2對象并賦初值對象并賦初值2. string類類 C#還定義了一個還定義了一個string類,表示一個類,表示一個Unicode字符序列,專門字符序列,專門用于對字符串的操作。同樣,這個類也是在用于對字符串的操作。同樣,這個類也是在.NET Framework的的命名空間命名空間System中定義的,是類中定義的,是類System.String的別名。的別名。字符串在實際中應(yīng)用非常廣泛,利用字符串在實際中應(yīng)用非常廣泛,利用string類中封裝
48、的各種類中封裝的各種內(nèi)部操作,可以很容易完成對字符串處理。例如:內(nèi)部操作,可以很容易完成對字符串處理。例如: string str1=123+abc; /+運算符用于連接字符串運算符用于連接字符串 char c=Hello World!2; /運算符可以訪問運算符可以訪問string中的單個字符中的單個字符,c=e string str2=China; string str3=China; / 字符串的另一種表示形式,用字符串的另一種表示形式,用引起來。引起來。 bool b=(str2=str3); /=運算符用于兩個字符串比較,運算符用于兩個字符串比較,b=true3.7.1 String
49、類類屬性屬性說明說明Chars 獲取此字符串中位于指定字符位置的字符。獲取此字符串中位于指定字符位置的字符。Length 獲取此字符串中的字符數(shù)。獲取此字符串中的字符數(shù)。 string類型是類型是.NET Framework中的中的String類的別名。類的別名。string類型定義了相等運算符(類型定義了相等運算符(=和和!=)用于比較兩個)用于比較兩個string對象,對象,另外,另外,+運算符用于連接字符串,運算符用于連接字符串,運算符可以用來訪問運算符可以用來訪問string中的各個字符。中的各個字符。 String 與 stringnString是CLR的類型名稱,而string是C
50、#中的keyword。C#編譯器,會自動的把string轉(zhuǎn)化為Sysem.String!方法方法說明說明Compare 靜態(tài)方法。比較兩個指定的靜態(tài)方法。比較兩個指定的String對象對象CompareTo 非靜態(tài)方法。將此字符串與指定的對象或非靜態(tài)方法。將此字符串與指定的對象或String進(jìn)行比較,并返回兩者相對值的進(jìn)行比較,并返回兩者相對值的指示指示Concat 靜態(tài)方法。連接靜態(tài)方法。連接String的一個或多個字符串的一個或多個字符串Contains 非靜態(tài)方法。返回一個值,該值指示指定的非靜態(tài)方法。返回一個值,該值指示指定的String對象是否出現(xiàn)在此字符串中對象是否出現(xiàn)在此字符串中
51、 Equals 非靜態(tài)方法。確定兩個非靜態(tài)方法。確定兩個String對象是否具有相同的值對象是否具有相同的值Format 靜態(tài)方法。將指定的靜態(tài)方法。將指定的String中的每個格式項替換為相應(yīng)對象的值的文本等效項中的每個格式項替換為相應(yīng)對象的值的文本等效項 IndexOf 非靜態(tài)方法。返回非靜態(tài)方法。返回String或一個或多個字符在此字符串中的第一個匹配項的索引或一個或多個字符在此字符串中的第一個匹配項的索引Insert 非靜態(tài)方法。在該非靜態(tài)方法。在該String中的指定索引位置插入一個指定的中的指定索引位置插入一個指定的StringRemove 非靜態(tài)方法。從該非靜態(tài)方法。從該Stri
52、ng中刪除指定個數(shù)的字符中刪除指定個數(shù)的字符Replace 非靜態(tài)方法。將該非靜態(tài)方法。將該String中的指定中的指定String的所有匹配項替換為其他指定的的所有匹配項替換為其他指定的 StringSplit 非靜態(tài)方法。返回包含該非靜態(tài)方法。返回包含該String中的子字符串(由指定中的子字符串(由指定Char或或String數(shù)組的元素數(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)方法。從此字符串的開始位置和末尾移除一組指定字符的所有匹配項非靜態(tài)方法。從此字符串的開始位置和末尾移除一組指定字符的所有匹配項重點掌握方法nIndexOf();nSubstring();練習(xí),取字符串練習(xí),取字符串 “abcd-xyz”中的減號后面
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 美容院裝修單包工合同
- 電纜溝工程承包合同書
- 奢侈品質(zhì)押擔(dān)保合同書
- 系統(tǒng)分析與項目管理手順手冊
- 企業(yè)內(nèi)部知識管理與學(xué)習(xí)培訓(xùn)平臺
- 物流行業(yè)的智能物流與倉儲管理作業(yè)指導(dǎo)書
- 代理記賬協(xié)議書
- 太陽能路燈購銷合同
- 解決客戶需求說明文書樣本
- 法律咨詢服務(wù)合同集錦
- 蘇州2025年江蘇蘇州太倉市高新區(qū)(科教新城婁東街道陸渡街道)招聘司法協(xié)理員(編外用工)10人筆試歷年參考題庫附帶答案詳解
- 幼兒園課件:健康教案
- 2025至2031年中國助眠床墊行業(yè)投資前景及策略咨詢研究報告
- 物業(yè)服務(wù)和后勤運輸保障服務(wù)總體服務(wù)方案
- 2025四川中煙招聘高頻重點提升(共500題)附帶答案詳解
- 2025年極兔速遞有限公司招聘筆試參考題庫含答案解析
- 2025年北京市文化和旅游局系統(tǒng)事業(yè)單位招聘101人筆試高頻重點提升(共500題)附帶答案詳解
- 2025年中儲棉總公司招聘筆試參考題庫含答案解析
- 2024-2030年中國科技孵化器產(chǎn)業(yè)發(fā)展現(xiàn)狀及投融資戰(zhàn)略分析報告
- 中學(xué)學(xué)校2024-2025學(xué)年第二學(xué)期教學(xué)工作計劃
- 人大代表小組活動計劃人大代表活動方案
評論
0/150
提交評論