下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1.命名規(guī)范:(1) Pascal風(fēng)格:多個(gè)英文單詞時(shí),每個(gè)英語(yǔ)單詞的首字母要大寫(2)Camel風(fēng)格:包含一個(gè)或者多個(gè)單詞時(shí),每個(gè)英語(yǔ)單詞首字母要小寫參數(shù)和變量使用 Camel風(fēng)格,其他都用 Pascal風(fēng)格2.控制臺(tái)應(yīng)用程序:類似DOS窗口那樣,以con sole命令方式運(yùn)行的程序Console.writeline(“XJTloveMH ” );/ 輸出:XJTIoveMHCon sole.readyok();/暫停運(yùn)行結(jié)果,按任意鍵結(jié)束。3. Windows窗體應(yīng)用程序:各種客戶端程序,有很好的人機(jī)交互界面,基于C/S架構(gòu)的程2.1值類型2.2引用類型2.3指針類型2.1值類型:(1 )
2、整數(shù)類型有符號(hào) sbyteshortintlong無(wú)符號(hào) byteushortuintulong左-右可以轉(zhuǎn)換(小 -大轉(zhuǎn)換)(2)浮點(diǎn)數(shù)類型(帶小數(shù)部分的數(shù)值)單精度(float )浮點(diǎn)類型雙精度(double )浮點(diǎn)類型若對(duì)于浮點(diǎn)數(shù)沒(méi)有進(jìn)行任何明確的聲明,默認(rèn)是double類型。要是強(qiáng)制將其制定為float類型,要在后面加上字符“F”或“ f”(3 )字符類型(char)字符串類型(string )字符常量是用單引號(hào)括起來(lái)一個(gè)字符。將字符放在雙引號(hào)里,編譯器會(huì)把它看做字符串。轉(zhuǎn)義字符:(4) decimal類型(十進(jìn)制decimal類型)為了適應(yīng)高精度的財(cái)務(wù)和貨幣計(jì)算的需求,C#提供了十進(jìn)
3、制decimal類型。要把數(shù)字定義為 decimal類型,而不是double或float或者整數(shù)類型,可以在數(shù)字后加字符“ M ”或“ m ”。(5)布爾類型(bool ),用來(lái)表示“真”或者“假”的邏輯數(shù)據(jù)類型。只有2種取值,真(true )或者假(false )。例子:計(jì)算圓的面積usingSystem;usingusingSystem.L inq;usingSystem.Text;usingnamespace circle class Programstaticvoid Main( string args)decimalpi=3.14159m;int r=12;decimals=0;s=
4、p i*r*r;Con sole.WriteLine("圓的半徑是:=0n 圓的面積是:=1" ,r,s);0和1是占位符,將r和s的結(jié)果顯示在0和1的位置顯示Console .ReadKey(); II控制臺(tái)暫停符合,暫停運(yùn)行結(jié)果Con sole .ReadL in e();2.2引用類型:(用來(lái)描述結(jié)構(gòu)復(fù)雜,抽象能力比較強(qiáng)的數(shù)據(jù)。與值類型是相并列的。)同為引用型的2個(gè)變量可以指向同一個(gè)對(duì)象, 也可以針對(duì)同一個(gè)變量產(chǎn)生作用,或被其他同類型的變量所影響。字符串,類,接口,委托,數(shù)組都是引用型變量。1 )字符串:(由放在一對(duì)雙引號(hào)中的多個(gè)字符組成的一個(gè)串。)看做字符組成的數(shù)組
5、。使用 string 來(lái)聲明字符串變量。數(shù)據(jù)類型之間的轉(zhuǎn)換:A.隱式轉(zhuǎn)換:1)數(shù)值類型 之間的隱式轉(zhuǎn)換小到大可以轉(zhuǎn)換,轉(zhuǎn)換可能導(dǎo)致 精度丟失,但不影響數(shù)量級(jí) 。不能大到小轉(zhuǎn)換。2)var 類型 數(shù)據(jù)隱式轉(zhuǎn)換:Var 定義的變量的數(shù)據(jù)類型由賦值的數(shù)據(jù)決定。Eg: varname= “ XJT” ,這時(shí)候 name 就是字符串類型,隱式轉(zhuǎn)換。Varname=250, 這時(shí)候 name 就是 int 類型,進(jìn)行了隱式轉(zhuǎn)換。B.顯示轉(zhuǎn)換:(強(qiáng)制類型轉(zhuǎn)換)要用戶明確指定轉(zhuǎn)換的類型。C.使用convert類來(lái)轉(zhuǎn)換:(是一種隱式轉(zhuǎn)換)D.數(shù)值和字符串之間的轉(zhuǎn)換:1) ToString ()方法:數(shù)值類型的
6、ToString ()方法可以將數(shù)值型數(shù)據(jù)轉(zhuǎn)換為字符串。變量名 .ToString ()eg:intn=10 stringm=n.ToString();/ 變量名 .ToString (),這個(gè)變量名喲和前面聲明的變量名保持一致2) Parse ()方法:數(shù)值類型的的 Parse ()方法可以將字符串轉(zhuǎn)換為數(shù)值型。數(shù)值類型 .parse( 變量名 )string b=a.ToString(); /int 型 a,轉(zhuǎn)換為字符串bIntn=int.Parse(m);/數(shù)值類型.parse(變量名),這個(gè)數(shù)值類型要和新聲明的變量類型保持一致。轉(zhuǎn)換的例子:usingSystem;usingusingS
7、ystem.L inq;usingSystem.Text;usingusingnamespace chargeclass Programstaticvoid Main( string args)double i=3.1415926;ints=( int)i;/強(qiáng)制將double 型的i轉(zhuǎn)換為int型的sdouble s1= Convert .Tolnt32(s); / 整型 s 隱式轉(zhuǎn)換為 double 型的 s1string m=;int n= int .Parse(m); /字符串 m,轉(zhuǎn)換為int型數(shù)值nint a=1000;Con sole .WriteL in e(s1);Con s
8、ole .WriteLi ne(n);Con sole .WriteL in e(b);/MessageBox.Show(s1.ToStri ng();/MessageBox.Show輸出的是一個(gè)text的字符串,所以要講int型的s1轉(zhuǎn)換為字符串Con sole .ReadKey();/轉(zhuǎn)換時(shí),小-大ok不能大-小E.裝箱和拆箱:(數(shù)據(jù)轉(zhuǎn)換類型的一種特許應(yīng)用)裝箱是將“值”類型轉(zhuǎn)換成“引用”類型(數(shù)值-字符串是其一種表現(xiàn))拆箱是將“引用”類型轉(zhuǎn)換成“值”類型。(字符串-數(shù)值是其一種表現(xiàn))封箱和拆箱的例子:usingSystem;usingusingSystem.L inq;usingSyst
9、em.Text;using namespace _3.khlxclass Program staticvoid Main( string args) int x=100;object obj=x;Console .WriteLine( "x 的初始值為0,裝箱后的值為1" ,x,obj.ToString();/封箱:將數(shù)值轉(zhuǎn)換為字符串 int y=( int )obj;Con sole .WriteLi ne("引用類型的值為0,拆箱后的值為1" ,obj.ToStri ng(),y);/拆箱:將字符串轉(zhuǎn)換為數(shù)值。Con sole .ReadKey();
10、值類型變量和引用類型變量的使用區(qū)別:值類型變量不需要用new關(guān)鍵字類分配內(nèi)存,定義完就可以直接使用,引用類型變量則需要為其賦值后,才能使用。值類型變量,在定義后就完成了內(nèi)存的分配,引用類型,在定義后,沒(méi)有為其分配內(nèi)存,必 須顯式用new關(guān)鍵字來(lái)為其分配內(nèi)存。二.變量和常量3.1變量在程序執(zhí)行過(guò)程中,不段變化的量值1)變量的命名:變量名 必須以 “字母或下劃線“開(kāi)頭 ,只能由 字母、數(shù)字、和下劃線組成。變量名 不能包含 空格、標(biāo)點(diǎn)符號(hào)、運(yùn)算符 字符。變量名 不能與 C# 中的 關(guān)鍵字、運(yùn)算符或函數(shù)名 同名。使用多個(gè)單詞組成變量名時(shí),使用駱駝命名法( camelCase ),即第一個(gè)單詞的首字母小
11、 寫,其他單詞的首字母大寫。2)變量的聲明和賦值變量的聲明語(yǔ)法如下:訪問(wèn)修飾符 變量修飾符 變量的數(shù)據(jù)類型變量名表;訪問(wèn)修飾符和變量修飾符可以省略。Privateintx=10Intx=3,y=4;3)隱式類型的局部變量(匿名變量)使用關(guān)鍵字 var 來(lái)聲明,可以 用 var 來(lái)聲明任何類型的局部變量 ,它只負(fù)責(zé)告訴編 譯器,該變量需要根據(jù)初始化表達(dá)式來(lái)推斷變量類型,而且只能是局部變量。隱式類型的局部變量的語(yǔ)法如下:Var 變量名稱 = 變量值;Vari=8 ;/ 定義局部變量 i;i 作為整數(shù)型數(shù)據(jù)被編譯。程序運(yùn)行過(guò)程中,值不發(fā)送改變的變量3.2 常量:常量的聲明語(yǔ)法如下:訪問(wèn)修飾符 con
12、st 類型常量表達(dá)式;Constintmonth=121 )變量前加 const 關(guān)鍵字,就可以將該變量聲明為常量。2 )變量實(shí)際上代表的是數(shù)據(jù)真實(shí)的存儲(chǔ)位置,變量的類型決定了它的存儲(chǔ)的數(shù)值。先 給變量聲明類型后才能賦值。四運(yùn)算符與表達(dá)式4.1 運(yùn)算符:表示各種不同運(yùn)算的符號(hào)。自加運(yùn)算符: 前置自加:x=+y; 計(jì)算過(guò)程是 y=y+1 ; x=y ; 后置自加:X=y+ ;計(jì)算過(guò)程是 x=y ; y=y+1 ;前置自減:x=y-; 計(jì)算過(guò)程是 y=y-1 ;x=y ;結(jié)構(gòu):(操作數(shù) 1?操作數(shù)2 ,操作數(shù) 3)后置自減:X=y- ;計(jì)算過(guò)程是 x=y ;y=y-1 ;其他運(yùn)算符:1 )條件運(yùn)算
13、符如果操作數(shù) 1 是真,輸出操作數(shù) 2 ,如果操作數(shù) 1 是假,輸出操作數(shù) 32 )()運(yùn)算符 用于指定操作數(shù)中的 運(yùn)算順序 和指定 強(qiáng)制轉(zhuǎn)換或類型轉(zhuǎn)換。3 )點(diǎn)運(yùn)算符 點(diǎn)運(yùn)算符( .)用于訪問(wèn)數(shù)據(jù)結(jié)構(gòu)的成員。結(jié)構(gòu):數(shù)據(jù)結(jié)構(gòu) .成員4 )索引運(yùn)算符 索引運(yùn)算符( )用于數(shù)組、索引器和屬性,也可用于指針。5 ) new 運(yùn)算符new 運(yùn)算符用于創(chuàng)建一個(gè)新的類型實(shí)例,有 3 種形式:a.對(duì)象創(chuàng)建表達(dá)式,用于創(chuàng)建一個(gè)類類型或值類型實(shí)例 b.數(shù)組創(chuàng)建表達(dá)式,用于創(chuàng)建一個(gè)數(shù)組類型實(shí)例C.代表創(chuàng)建表達(dá)式,用于創(chuàng)建一個(gè)新的代表類型實(shí)例6 ) typeof 運(yùn)算符 用于獲取系統(tǒng)原型對(duì)象的類型,也就是 Type
14、 類型。 Type 類包含關(guān)于值類型 和引用類型的信息。7 ) CheCked 和 unCheCked 運(yùn)算符 用于檢測(cè)指定的運(yùn)算,并指出相應(yīng)的錯(cuò)誤信息。4.3 表達(dá)式:4.2 運(yùn)算符的優(yōu)先級(jí)用運(yùn)算符把操作數(shù)連接起來(lái)的式子。操作數(shù)包括文本、變量、常量和表達(dá)式等五程序的基本結(jié)構(gòu)5.1 順序結(jié)構(gòu):每一條語(yǔ)句都要執(zhí)行并且只執(zhí)行一次, 語(yǔ)句的執(zhí)行先后次序和語(yǔ)句在順序結(jié)構(gòu)中出現(xiàn)的先后 次序一致。程序代碼中最基本的結(jié)構(gòu), 逐條執(zhí)行程序中的每一天語(yǔ)句, 從程序開(kāi)始執(zhí)行到程序結(jié)束為止。5.2 分支結(jié)構(gòu):程序設(shè)計(jì)過(guò)程中,經(jīng)常要根據(jù)條件進(jìn)行判斷,選擇要執(zhí)行的語(yǔ)句序列。分支結(jié)構(gòu):根據(jù)條件的不同,選擇執(zhí)行程序中的不同
15、分支,每個(gè)分支對(duì)應(yīng)一個(gè)語(yǔ)句 序列。1 )條件語(yǔ)句if 語(yǔ)句、對(duì)條件進(jìn)行判斷,根據(jù)判斷結(jié)構(gòu)選擇執(zhí)行不同的分支。有If.else 語(yǔ)句和 switch 語(yǔ)句。單分支結(jié)構(gòu)語(yǔ)句: 只有 if 語(yǔ)句的分支結(jié)構(gòu) 雙分支結(jié)構(gòu)語(yǔ)句:If.else 語(yǔ)句的分支結(jié)構(gòu) 多分支結(jié)構(gòu): 含有多個(gè) if.else 語(yǔ)句的分支結(jié)構(gòu)2 ) switch 語(yǔ)句Switch (表達(dá)式)Case 常量表達(dá)式1:語(yǔ)句序列 1 ;break ;Case 常量表達(dá)式2:語(yǔ)句序列 2 ;break ;Case 常量表達(dá)式n:語(yǔ)句序列 n ;break ;Default:語(yǔ)句序列 n+1 ;Break ;Switch 分支結(jié)構(gòu)多用于常量比較
16、少的情況。5.3 循環(huán)結(jié)構(gòu):在程序開(kāi)發(fā)中, 經(jīng)常要反復(fù)執(zhí)行某段代碼, 為了避免重復(fù)輸入相同代碼, 同時(shí)提高程序代碼 得可讀性, 引入了循環(huán)結(jié)構(gòu), 需要反復(fù)執(zhí)行的代碼稱為循環(huán)體。 循環(huán)結(jié)構(gòu)使用循環(huán)條件控制 循環(huán)體代碼得執(zhí)行與否,循環(huán)條件中通常使用一個(gè)特殊的變量,循環(huán)變量。C# 提供的循環(huán)語(yǔ)句有: for 語(yǔ)句, while 語(yǔ)句, dowhile 語(yǔ)句和 foreach 語(yǔ)句。1 )for 循環(huán)for (表達(dá)式 1;表達(dá)式 2;表達(dá)式 3 )循環(huán)體2 ) while 循環(huán)While (表達(dá)式)循環(huán)體3 ) do-while 循環(huán)do循環(huán)體while (表達(dá)式)4 ) foreach 循環(huán)fore
17、ach 循環(huán)用于遍歷整個(gè)集合或數(shù)組, 可以獲取集合中的所有對(duì)象, 不需要給出循環(huán) 變量和循環(huán)條件,也不需要給循環(huán)變量賦初值和修改循環(huán)變量的值。foreach (數(shù)據(jù)類型局部變量in集合或者數(shù)組)循環(huán)體5.4循環(huán)嵌套(循環(huán)嵌套就是在循環(huán)體中還可以使用循環(huán)語(yǔ)句。)循環(huán)嵌套需要區(qū)分外層循環(huán)和內(nèi)層循環(huán),外層循環(huán)執(zhí)行一次,內(nèi)層循環(huán)執(zhí)行一遍。 外層循環(huán)和內(nèi)層循環(huán)的循環(huán)控制要互相獨(dú)立。外層循環(huán)和內(nèi)層循環(huán)要定義 2個(gè)不同的循環(huán)變量。如果循環(huán)結(jié)構(gòu)在for語(yǔ)句中定義循環(huán)變量,該變量被視為局部變量,循環(huán)結(jié)構(gòu)結(jié)束后,變量就被釋放,循環(huán)語(yǔ)句外再引用這個(gè)循環(huán)變量就會(huì)出錯(cuò)。六.異常處理與程序調(diào)試6.1C#錯(cuò)誤類型:(1 )
18、語(yǔ)法錯(cuò)誤:代碼不符合 C#語(yǔ)言的語(yǔ)句。(2 )運(yùn)行錯(cuò)誤:異常。(3 )邏輯錯(cuò)誤:沒(méi)有實(shí)現(xiàn)編程人員的設(shè)計(jì)意圖和功能。6.2異常處理概述:異常:程序執(zhí)行時(shí)遇到的錯(cuò)誤情況或意外行為。異常處理:編程人員在程序編寫過(guò)程中對(duì)可能發(fā)生的錯(cuò)誤和異常預(yù)先采取的處理措施。常見(jiàn)的異常類有:6.3 異常處理過(guò)程:try-catch 語(yǔ)句是 C# 提供的異常處理語(yǔ)句,語(yǔ)法如下:try可能出現(xiàn)異常的語(yǔ)句序列;Catch (異常類型異常對(duì)象)對(duì)可能出現(xiàn)的異常進(jìn)行處理;try-catch-finally 語(yǔ)句,語(yǔ)法如下:try可能出現(xiàn)異常的語(yǔ)句序列;Catch (異常類型異常對(duì)象)對(duì)可能出現(xiàn)的異常進(jìn)行處理;finally最后
19、要執(zhí)行的代碼,進(jìn)行必要的清理操作,以釋放資源throw 語(yǔ)句 在 try-catch 和 try-catch-finally 語(yǔ)句中的 try 塊中,除了系統(tǒng)自動(dòng)拋出異常外,也可以使 用 throw 語(yǔ)句拋出異常; throw 語(yǔ)句既可以引發(fā)系統(tǒng)異常,也可以引發(fā)自定義異常。throw 異常對(duì)象 自定義異常類: 如果系統(tǒng)提供的異常類不能夠與程序中的異常相匹配,就需要自定義異常類。自定義異常類的語(yǔ)法如下:Class 自定義異常類名:異?;惷? 語(yǔ)句塊6.4 程序調(diào)試:程序調(diào)試的主要目的是解決程序中的邏輯錯(cuò)誤,通過(guò)設(shè)置斷點(diǎn),跟蹤觀察程序的執(zhí)行過(guò)程, 發(fā)現(xiàn)造成邏輯錯(cuò)誤的具體語(yǔ)句,然后修改程序?qū)崿F(xiàn)設(shè)計(jì)
20、目標(biāo)。1 )鼠標(biāo)左鍵單擊代碼窗口最左邊灰色區(qū)域?qū)?yīng)語(yǔ)句行的位置添加斷點(diǎn),再次 單擊刪除斷點(diǎn),左側(cè)的紅色圓點(diǎn)即為斷點(diǎn)(2 )鼠標(biāo)左鍵單擊語(yǔ)句所在行,然后按 F9來(lái)添加斷點(diǎn),再次按 F9刪除斷點(diǎn)3 )鼠標(biāo)左鍵單擊語(yǔ)句所在行,然后右鍵單擊,在彈出的快捷菜單中選擇【斷 點(diǎn)】 - 插入斷點(diǎn)。6.4.2 啟動(dòng)、繼續(xù)和停止調(diào)試選擇菜單【調(diào)試】 - 啟動(dòng)調(diào)試或按 F5 鍵啟動(dòng)調(diào)試,或單擊工具欄的啟 動(dòng)按鈕,啟動(dòng)調(diào)試。啟動(dòng)調(diào)試后,可以選擇菜單【調(diào)試】 - 【停止調(diào)試】來(lái)停止調(diào)試。6.4.3 單步調(diào)試啟動(dòng)調(diào)試后,可以在菜單中選擇【調(diào)試】 - 【逐語(yǔ)句】或者【調(diào)試】逐過(guò)程】進(jìn)行逐語(yǔ)句或逐過(guò)程調(diào)試。= 逐句調(diào)試相當(dāng)于
21、為程序中的每個(gè)語(yǔ)句都加上一個(gè)斷點(diǎn),每次執(zhí)行一條語(yǔ)句。= 程序執(zhí)行到被調(diào)用函數(shù)內(nèi)部,需要停止逐語(yǔ)句調(diào)試時(shí),可以選擇【調(diào)試】- 【跳出】,程序?qū)⒎祷氐秸{(diào)用函數(shù)。6.4.4 調(diào)試監(jiān)控Visualstudio 提供了局部變量窗口、監(jiān)視窗口、自動(dòng)窗口和快速監(jiān)視窗口等對(duì)程序的運(yùn)行進(jìn)行監(jiān)控。1)局部變量窗口( 2)自動(dòng)窗口( 3 )監(jiān)視窗口( 4)快速監(jiān)視窗口常用數(shù)據(jù)類型的用法7.1 字符串(C#中,字符串常用于 C#重新的輸入、輸出,文件讀、寫操作 )A.創(chuàng)建字符串:String 字符串變量名;Stringstr= ” XJT”1 )在定義字符串變量的同時(shí)賦值 Stringstr= ”XJT”;2 )將一
22、個(gè)字符串賦值給另外一個(gè)字符串:stringa=str+ ”123 ”3 )使用創(chuàng)建 string 對(duì)象的方式,創(chuàng)建包含指定個(gè)數(shù)給定字符的字符串。Stringa=newstring( a ' ,5);/ 創(chuàng)建了一個(gè)字符串stringa= ” aaaaa ”B.字符串基本操作:1 )字符串判等a.字符串變量I.Equals (字符串2);其中字符串 2 可以是變量也可以是常量。字符串變量 1 調(diào)用成員函數(shù) Equals (),比較字符串變量1 對(duì)應(yīng)的字符串與字符串 2 是否相等,相等返回 True, 不相等返回 False 。b.String.Equals(字符串 1 ;字符串 2) ;E
23、g: stringa= ”XJT”Stringb=s;string.Equals(a,b);Console.WriteLine(a.Equals(b);/=2 )字符串的比較a.字符串變量.CompareTo(字符串2);b.Spare( 字符串 1,字符串 2);字符串比較方式:找到 2 個(gè)字符串中第一個(gè)不相同的字符,該字符 ASCII 碼值 小的字符串小。若字符串變量小于字符串 2 返回 -1 ,字符串 變量小于字符串 2 相等返回 0,字符串變量小于字符串 2 大 于返回 1.3)判斷字符串變量是否包含指定字符或字符串 a.字符串變量.Contains(字符1);b.字符串變量.Cont
24、ains(字符串2);4)查找字符串變量中指定字符或字符串出現(xiàn)的位置 a.字符串變量.IndexOf(字符1);b.字符串變量.IndexOf 字符串2);返回要查找的 字符或者字符串首字母在字符串中的位置數(shù)值。5)取子串a(chǎn).字符串變量.SubString(起始位置,字符串長(zhǎng)度);II取給定長(zhǎng)度子字符串b.字符串變量.SubString (起始位置);/取到字符串結(jié)尾6)插入子串a(chǎn). 字符串變量 .Insert起始位置,子字符串 2);一個(gè)字符串起始位置是0,7 )刪除子串字符串變量 .Remove(起始位置,子串長(zhǎng)度 );字符串變量 .Remove(起始位置 );不指定子字符串串長(zhǎng)度就取值到
25、字符串變量結(jié)尾。8)替換子串字符串變量 .Replace( 字符串 1,字符串 2);/ 字符串 2替換字符串 19 )去除字符串空格 字符串變量 .Trim(); 除去字符串頭部和尾部的空格 。C.StringBuilder 類String 類是引用類型,每次改變 string 類對(duì)象的值,(修改字符串變量對(duì)應(yīng) 的字符串),都需要再內(nèi)存里為新字符串重新分配空間。會(huì)導(dǎo)致內(nèi)存開(kāi)銷大, 所以引入 StringBuilder 類。7.2 數(shù)組1.一維數(shù)組:理解為一個(gè)表格,一維數(shù)組就是一個(gè)一行多列的表格。數(shù)組中的數(shù)據(jù)稱為數(shù)組 元素。數(shù)組不能直接使用,要先對(duì)數(shù)組進(jìn)行初始化。初始化就是指出數(shù)組中元素的個(gè)數(shù)
26、,為數(shù)組分配內(nèi)存空間,也可以同時(shí)為數(shù)組 元素賦值。a.數(shù)據(jù)類型數(shù)組名=new數(shù)據(jù)類型數(shù)組元素個(gè)數(shù)數(shù)組元素列表;b.數(shù)組名=new數(shù)據(jù)類型數(shù)組元素個(gè)數(shù);Inta=newint51,2,3,4,5;a=newint51,2,3,4,5;下標(biāo) ”的方數(shù)組包含多個(gè)數(shù)組元素,為了區(qū)分?jǐn)?shù)組的不同元素,使用“數(shù)組名 式訪問(wèn)數(shù)組元素。 C# 中提供了一個(gè)屬性 Length ,來(lái)表示數(shù)組的長(zhǎng)度,也就是數(shù)組中元素的 個(gè)數(shù)。2. 二維數(shù)組: 一維數(shù)組就是一個(gè)一行多列的表格,二維數(shù)組可以看作多行多列的表格。二維數(shù)組語(yǔ)法格式: 數(shù)組類型 ,數(shù)組名 =new 數(shù)據(jù)類型 行數(shù),列數(shù) 數(shù)組元素列表 ;數(shù)組類型 ,數(shù)組名 =n
27、ew 數(shù)據(jù)類型 行數(shù),列數(shù) ;3. 數(shù)組的基本操作:1 )數(shù)組排序和反轉(zhuǎn)Array 類的靜態(tài)方法 Sort ()可以實(shí)現(xiàn)數(shù)組的排序,無(wú)返回值。Array.Sort( 數(shù)組名 );/ 升Array.Reverse( 數(shù)組名 );/ 降2 )查找數(shù)組元素Array 類的靜態(tài)方法 IndexOf() 可以判斷數(shù)組是否包含與給定值相等的元 素,是返回對(duì)應(yīng)數(shù)組元素的下標(biāo),否則返回 -1.Array.IndexOf( 數(shù)組名,要查找的值 );3 )數(shù)組元素求和、最大值、最小值、平均值:C# 提供了方法 sum ()、 Max ()、 Min ()、 Average ()對(duì)數(shù)組 元素進(jìn)行統(tǒng)計(jì)。數(shù)組名 .su
28、m();4 )數(shù)組字符串相互轉(zhuǎn)化:String 類的靜態(tài)方法 Join ()可以將數(shù)組中所有元素連接起來(lái),生成 一個(gè)字符串,返回值為該字符串。String.join( 分隔符,數(shù)組名 );String 類的方法 Split(); 可以根據(jù)分隔符將字符串切分為多個(gè)部分,每個(gè) 部分作為一個(gè)數(shù)組元素生成一個(gè)字符串?dāng)?shù)組,返回值為該字符串?dāng)?shù)組。字符串變量 .Split( 分隔符 );5 )在字符串中查找、刪除字符數(shù)組元素:String 類方法 IndexOfAny(); 在字符串中查找給定字符數(shù)組中的所有 元素,返回 字符數(shù)組元素在字符串中首次出現(xiàn)的位置值 ,查找失敗則返回 -1.字符串變量.Index
29、OfAny(字符數(shù)組名);Stri ng類方法Last In dexOfA ny();在字符串中查找給定字符數(shù)組中所有元素,返回 字符數(shù)組元素在字符串中最后出現(xiàn)的位置值,查找失敗則返 回-1。字符串變量.LastIndexOfAny(字符數(shù)組名);:組是C#中重要的數(shù)據(jù)類型,可以作為參數(shù)傳遞給某個(gè)方法。7.3枚舉枚舉類型用于聲明一組命名常數(shù)。語(yǔ)法格式:enum枚舉類型名枚舉成員列表En umweek=星期一,星期二,星期三,星期四,星期五,星期六,星期天枚舉類型定義在類定義之外。八.主流軟件開(kāi)發(fā)方法:面向?qū)ο?.1面向?qū)ο蟮木幊趟枷朊嫦驅(qū)ο缶幊蹋篵ooch對(duì)對(duì)象的描述:對(duì)象具有狀態(tài)、行為和標(biāo)識(shí)
30、。這意味著每一個(gè)對(duì)象 都可以擁有內(nèi)部數(shù)據(jù)(它們給出了該對(duì)象的狀態(tài))和 方法(它們產(chǎn)生行為),并且每一個(gè)對(duì)象都可以唯一地與其他對(duì)象區(qū)分開(kāi)來(lái),具體說(shuō)來(lái),就是每一個(gè)對(duì)象在內(nèi)存中都有一個(gè)唯一地 址。8.2從特許到一般:C#中的類面向?qū)ο蟪绦蛟O(shè)計(jì)的基礎(chǔ)是類和對(duì)象。類是面向?qū)ο蟪绦蛟O(shè)計(jì)思想的靈魂。8.2.1 類的概念 :類是對(duì)具有相同特征的一類事物的抽象。8.2.2 類的定義: 類的定義使用 class 關(guān)鍵字,語(yǔ)法如下: 訪問(wèn)修飾符 class 類名/ 類的主體C#中的5種訪問(wèn)修飾符:1 )public 對(duì)類的訪問(wèn)不受限,都可以訪問(wèn)。就像公共圖圖書館,誰(shuí)都可 以進(jìn)去看書。2 ) protected對(duì)類的
31、訪問(wèn)僅限于包含類或從包含類派生的類,就像單位 圖書館,只能該單位或者子公司的人才能進(jìn)去。3 )private 訪問(wèn)僅限于包含類,就好像私人圖書館一樣不對(duì)外開(kāi)放。4 )internal 訪問(wèn)僅限于當(dāng)前項(xiàng)目。就好像,允許派到本單位協(xié)助工作 的人也能訪問(wèn)的單位圖書館,除了本單位的人能訪問(wèn)外, 外單位派到本單位協(xié)助工作的人員也能訪問(wèn)。5 ) protectedinternal 同時(shí)擁有 protected 的訪問(wèn)權(quán)限和 internal 的 訪問(wèn)權(quán)限。8.2.3 類的成員1 )數(shù)據(jù)成員類要處理的數(shù)據(jù),它包括 常數(shù)和字段 。成員變量的定義語(yǔ)法: 訪問(wèn)修飾符 數(shù)據(jù)類型成員變量名2 )屬性成員 屬性是字段的
32、一種自然擴(kuò)展,是一個(gè)與類或?qū)ο笙嚓P(guān)聯(lián)的命名。與字 段不同的是:屬性不表示存儲(chǔ)位置,屬性擁有訪問(wèn)器,訪問(wèn)器定義了讀取 或?qū)懭雽傩灾禃r(shí),必須執(zhí)行的代碼, 讀 get ,寫 set 。 為了類的封裝 性,一般是把描述類的特征的字段定義為 private ,把屬性設(shè)為 public 來(lái) 操作私有的字段。定義屬性成員的語(yǔ)法如下: 訪問(wèn)修飾符 數(shù)據(jù)類型屬性名get()Set()3 )方法成員 方法是用來(lái)描述對(duì)象的行為的,對(duì)類的數(shù)據(jù)成員的操作都封裝在類 的方法中。方法的主要功能是操作數(shù)據(jù),沒(méi)有方法的程序是沒(méi)有意義的。方法的聲明格式如下: 訪問(wèn)修飾符 返回值數(shù)據(jù)類型 方法名(參數(shù)列表)/ 方法體非靜態(tài)成員方法
33、 可以直接訪問(wèn)非靜態(tài)成員,可以直接訪問(wèn)靜態(tài)成員, 靜態(tài)成員方法 不可以直接訪問(wèn)非靜態(tài)成員,可以直接訪問(wèn)靜態(tài)成員 方法調(diào)用的步驟如下:1 )實(shí)例化調(diào)用方法的類,創(chuàng)建對(duì)象。Dogobjdog=newDog();2)用對(duì)象 .方法名 (參數(shù) )調(diào)用方法。objdog. 方法名 (參數(shù) );4 )靜態(tài)成員 靜態(tài)成員是和類相關(guān)聯(lián)的,不依賴于特定對(duì)象,可以作為“共” 有成員。類的某個(gè)成員聲明時(shí),使用了 static 關(guān)鍵字,該成員就變成了“靜 態(tài)成員”。靜態(tài)成員為類的所有對(duì)象所共享,非靜態(tài)成員(實(shí)例成員)屬 于某個(gè)具體的對(duì)象。靜態(tài)成員只能由類來(lái)調(diào)用,不能由對(duì)象調(diào)用。靜態(tài)成員的使用,用 類名 .靜態(tài)成員名
34、,直接使用不需要?jiǎng)?chuàng)建對(duì)象。對(duì)實(shí)例成員的調(diào)用, 要先創(chuàng)建對(duì)象,用 對(duì)象名 .實(shí)例成員名 的方式來(lái)調(diào)用,只能訪問(wèn) public 字段。8.3 從特許到一般: C# 中的對(duì)象8.3.1 對(duì)象的概念: 類是具有相同特征的一類事物的抽象,而 對(duì)象是類的實(shí)例 。類和對(duì)象有著本質(zhì)的區(qū)別: 類是從對(duì)象中抽取出來(lái)的一類對(duì)象的描述,對(duì)象是類中的個(gè)體,是一個(gè)具體的事物,創(chuàng)建對(duì)象就是從抽象到具體的過(guò)程,是將類的屬性和行為實(shí)例化的過(guò)程。車型設(shè)計(jì)(類)具體的車(對(duì)象)車型設(shè)計(jì)說(shuō)明了車應(yīng)該具有的所有屬性和功能。但車 型設(shè)計(jì)不是車,不能發(fā)動(dòng)和駕駛= 對(duì)象就是根據(jù)車型設(shè)計(jì)造出來(lái)的車,具備車型設(shè)計(jì)所描 述的屬性和功能,車是能發(fā)動(dòng)
35、和駕駛的。8.3.2 對(duì)象的創(chuàng)建和使用: 類名對(duì)象名 =new 類名(參數(shù)列表);8.3.3 匿名類型和對(duì)象初始化器Pointp=newPoint()X=0, Y=0;/創(chuàng)建對(duì)象p ,并對(duì)屬性 X和丫都賦值0 ;Varp=newX=0 ,Y=2 ;/ 創(chuàng)建匿名對(duì)象 p ,并使用對(duì)象初始化器賦值;8.3.4 構(gòu)造函數(shù)和析構(gòu)函數(shù)1 )構(gòu)造函數(shù) 構(gòu)造函數(shù)是類的特殊方法成員, 名稱和類名相同,主要是用來(lái)完成對(duì)象的初始化。C# 通過(guò) new 來(lái)創(chuàng)建對(duì)象的過(guò)程實(shí)際上就是調(diào)用類的構(gòu)造函數(shù)的過(guò)程,創(chuàng)建對(duì) 象時(shí)調(diào)用構(gòu)造函數(shù)對(duì)對(duì)象進(jìn)行初始化。與類同名 ,無(wú)返回值類型每個(gè)類都有構(gòu)造函數(shù)訪問(wèn)一個(gè)類時(shí),系統(tǒng)最先執(zhí)行構(gòu)造
36、函數(shù)中的語(yǔ)句。2 )析構(gòu)函數(shù) 析構(gòu)函數(shù)是對(duì)對(duì)象銷毀前釋放所占用系統(tǒng)資源的類的成員。析構(gòu)函數(shù) 的名字是在類名前加一個(gè)符號(hào)“ ”組成。析構(gòu)函數(shù)不接受任何參數(shù),不 返回任何值。8.3.5 參數(shù)的傳遞:形式參數(shù)( 定義方法時(shí),聲明的的參數(shù)。 ) / 一般在類中實(shí)在參數(shù)( 調(diào)用方法時(shí),實(shí)際傳遞給形式參數(shù)的值。) / 一般在主函數(shù)中實(shí)在參數(shù)和形式參數(shù)的變量名可以相同。值傳遞: 值傳遞是 C# 默認(rèn)的傳遞方式,使用值參數(shù)傳遞時(shí),向形式參數(shù)傳遞的是實(shí)在 參數(shù)的副本,方法內(nèi)發(fā)生的對(duì) 形式參數(shù)的更改對(duì)實(shí)際參數(shù)本身沒(méi)有任何影響 ,就像 文件的復(fù)印一樣,無(wú)論如何修改復(fù)印件,原件沒(méi)有任何改變。例子:classProgr
37、amstaticvoidSort(intx,inty,intz)inttemp;/將 x,y,z 按從小到大排序if(x>y)temp=x;x=y;y=temp;if(x>z)temp=x;x=z;z=temp;if(y>z)temp=y;y=z;z=temp;Console.WriteLine("a=0,b=1,c=2",x,y,z);staticvoidMain(stringargs)inta,b,c;a=20;b=10;c=5;Sort(a,b,c);/ 輸出了結(jié)果 :a=5,b=10,c=20Console.WriteLine("a=0,
38、b=1,c=2",a,b,c);/ 輸出了 a=20;b=10;c=5說(shuō)明:在執(zhí)行到Sort (a,b,c);的時(shí)候調(diào)用了 staticvoidSort(intx,inty,intz)函數(shù),此時(shí)將實(shí)際參數(shù)的值a=20;b=10;c=5;分別傳遞給了形式參數(shù)x,y,z。在執(zhí)行函數(shù)內(nèi)容前, x=20;y=10;z=5; 執(zhí)行完 staticvoidSort(intx,inty,intz) 函數(shù)時(shí), x=5;y=10;z=15; 然后輸出了a=5;b=10;c=15。執(zhí)行完 Sort( a,b,c)后,執(zhí)行 Console.WriteLine("a=0,b=1,c=2"
39、,a,b,c);語(yǔ)句這里的 a,b,c是實(shí)際參數(shù),沒(méi)有發(fā)生任何改變,任然為 a=20;b=10;c=5;故一個(gè) 2 次輸出了結(jié)果: 輸出了結(jié)果 :a=5,b=10,c=20輸出了 a=20;b=10;c=5值傳遞時(shí),方法內(nèi)發(fā)生的對(duì)形式參數(shù)的更改對(duì)實(shí)際參數(shù)本身沒(méi)有任何影響。引用傳遞:如果希望所調(diào)用的方法能更改實(shí)在參數(shù)的值,必須使用ref 或 out 關(guān)鍵字聲明通過(guò)引用傳遞方式傳遞參數(shù), 引用傳遞是把實(shí)在參數(shù)的地址傳遞給形式參數(shù), 形式參數(shù)和實(shí)在參數(shù)指向同一個(gè)存儲(chǔ)單元,對(duì)形式參數(shù)的改變就是對(duì)實(shí)在參數(shù)的 改變。ref 要求參數(shù)在傳遞之前要進(jìn)行初始化, out 則不要求在參數(shù)傳遞前初始化。 out要在
40、調(diào)用函數(shù)返回前,對(duì)out傳遞的參數(shù)賦值。Out只能從方法中傳出值,而不能從方法調(diào)用處接受實(shí)參數(shù)據(jù)例子:classProgramstaticvoidSort(refintx,refinty,refintz)inttemp;/將 x,y,z 按從小到大排序if(x>y)temp=x;x=y;y=temp;if(x>z)temp=x;x=z;z=temp;if(y>z)temp=y;y=z;z=temp;Console.WriteLine("a=0,b=1,c=2",x,y,z); staticvoidMain(stringargs)inta,b,c;a=20;
41、b=10;c=5;Sort(refa,refb,refc);/ 輸出了結(jié)果 :a=5,b=10,c=20Console.WriteLine("a=0,b=1,c=2",a,b,c);/ 輸出了 a=5,b=10,c=20說(shuō)明: 2 次輸出的結(jié)果: 輸出了結(jié)果 :a=5,b=10,c=20輸出了結(jié)果 :a=5,b=10,c=20使用 ref 或 out 關(guān)鍵字,可以使得所調(diào)用的方法在改變形式參數(shù)的時(shí)候, 更改實(shí)在參數(shù)的值總結(jié): 值傳遞,形式參數(shù)的改變,不影響實(shí)際參數(shù),不能改變實(shí)際參數(shù)的值, 引用傳遞,形式參數(shù)的改變,會(huì)導(dǎo)致實(shí)際參數(shù)的改變。8.4 結(jié)構(gòu)與類結(jié)構(gòu)和類相似,通常用來(lái)
42、封裝小型的相關(guān)變量組。結(jié)構(gòu)是一種值類型 ,創(chuàng)建結(jié)構(gòu)比創(chuàng)建類的速度快。8.4.1 結(jié)構(gòu)的定義和使用< 訪問(wèn)修飾符 >struct 結(jié)構(gòu)名/ 結(jié)構(gòu)體定義8.4.2 類和結(jié)構(gòu)的關(guān)系8.5 分部類分部類實(shí)用于以下情況:1)類型特別大,不宜放在一個(gè)文件中實(shí)現(xiàn)。2)一個(gè)類型中的一部分代碼為自動(dòng)化工具生成代碼,不宜與我們自己編寫的代碼混合在一起3)需要多人合作編寫一個(gè)類。C#編譯器在編譯時(shí)分部類是一個(gè)純語(yǔ)言層的編譯處理,不影響任何執(zhí)行機(jī)制,將分部類合并成一個(gè)完整的類。C#分部類是在class關(guān)鍵字前添加關(guān)鍵字partial來(lái)定義。PublicpartialclassPersonPartialvo
43、idDoWork ();分部方法不可有返回值。8.6命名空間 names pace 定義的命名空間名稱/命名空間體命名空間不過(guò)是數(shù)據(jù)類型的一種組合方式,但命名空間中所有數(shù)據(jù)類型的名稱都會(huì)自動(dòng)加該 命名空間的名字作為其前綴。862usi ng 關(guān)鍵字using命名空間名稱;例子:Usi ngMessageBox.Show( “ HelloC# !” );靜態(tài)類不能實(shí)例化,不能用 new關(guān)鍵字創(chuàng)建靜態(tài)類類型的變量。九、深入了解面向?qū)ο螅好嫦驅(qū)ο蟮闹匾卣骼^承是軟件復(fù)用的一種形式。使用繼承可以復(fù)用現(xiàn)有類的數(shù)據(jù)和行為,為其賦予新功能而創(chuàng)建出新類。節(jié)省開(kāi)發(fā)時(shí)間,重用經(jīng)過(guò)實(shí)踐檢測(cè)和調(diào)試的高質(zhì)量代碼,提供系
44、統(tǒng)的質(zhì)量。9.1繼承的定義和使用在現(xiàn)有類(基類、父類)上建立新類(派生類、子類)的處理過(guò)程稱為繼承。派生類能自動(dòng)獲得基類的除了構(gòu)造函數(shù)和析構(gòu)函數(shù)以為的所有成員,可以在派生類中添 加新的屬性和方法擴(kuò)展其功能。訪問(wèn)修飾符class派生類名:基類名/ 類的代碼9.1.1 繼承的特性:可傳遞性:C從B派生,B從A派生,那么C不僅繼承B也繼承A。單一性:只能從一個(gè)基類中繼承,不能同時(shí)繼承多個(gè)基類繼承中的訪問(wèn)修飾符9.1.2base 和 this 關(guān)鍵字base 來(lái)繼承基類的構(gòu)造函數(shù)和析構(gòu)函數(shù)不能被繼承的。但可以使用關(guān)鍵字基類的構(gòu)造函數(shù)。C# 中的 base 關(guān)鍵字代表基類,使用 base 關(guān)鍵字可以調(diào)用
45、基類的構(gòu)造函數(shù)、屬性和方法。A.t his 關(guān)鍵字1)this 引用的是當(dāng)前實(shí)例。2)this 關(guān)鍵字是一個(gè)隱含引用,它隱含于每個(gè)類的成員函數(shù)中。3)this 關(guān)鍵字引用類的當(dāng)前對(duì)象,成員通過(guò) this 關(guān)鍵字可以知道自己屬于哪一個(gè)實(shí)例。中引用 this 。4) 關(guān)鍵字 this 僅限于在構(gòu)造函數(shù)、實(shí)例方法和類的實(shí)例中使用。5) 不能在靜態(tài)方法、 靜態(tài)屬性訪問(wèn)器中或字段聲明的 “變量初始值設(shè)定項(xiàng)” 派生類的建立需要注意:(1).派生類會(huì)繼承基類除了構(gòu)造函數(shù)和析構(gòu)函數(shù)的所有成員。(2). 派生類調(diào)用構(gòu)造函數(shù)時(shí),會(huì)先調(diào)用基類的構(gòu)造函數(shù)。 默認(rèn)調(diào)用沒(méi)有參數(shù)的構(gòu)造函數(shù)。(3). 用 base 關(guān)鍵字顯
46、式調(diào)用基類構(gòu)造函數(shù)。(4).如果需要調(diào)用基類中的同名方法,應(yīng)該使用”base. 方法名”來(lái)調(diào)用9.2多態(tài)的概念:C#中,多態(tài)的定義:同一個(gè)操作,作用于不同類的對(duì)象,不同類的對(duì)象進(jìn)行不同的執(zhí)行,最后產(chǎn)生不同的執(zhí)行結(jié)果。9.2.1多態(tài)的實(shí)現(xiàn):C#中支持基于接口的多態(tài) 和基于繼承的多態(tài)?;诶^承的多態(tài)設(shè)計(jì)在基類中定義方法,并在派生類中重寫方法。多態(tài)和重寫是緊密相聯(lián)系的,重寫是實(shí)現(xiàn)多態(tài)的重要手段。在基類中用virtual關(guān)鍵字聲明的方法(虛擬方法)在派生類中重寫。訪問(wèn)修飾virtual返回值類型方法名()/方法體在派生類中重寫基類中的虛擬方法,使用override關(guān)鍵字。9.2.3方法的重載、重寫和隱藏在基類和派生類中可以存在同名方法,這些同名的方法可以重載、重寫和隱藏。(1)重載(方法同名,但參數(shù)列表不同)一系列同名方法,但是重載是在同一個(gè)作用域內(nèi)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 木地板安裝合同范例
- 電源材料采購(gòu)合同范例
- 簡(jiǎn)約勞動(dòng)合同范例
- 義診合作協(xié)議合同范例
- 抖音短編劇合同范例
- 完整版100以內(nèi)加減法混合運(yùn)算4000道112
- 鐵門關(guān)職業(yè)技術(shù)學(xué)院《計(jì)算機(jī)控制技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 小學(xué)數(shù)學(xué)二年級(jí)第二學(xué)期口算計(jì)算共5073道題
- 小學(xué)數(shù)學(xué)二年級(jí)第二學(xué)期口算計(jì)算共5083道題
- 小學(xué)數(shù)學(xué)二年級(jí)第二學(xué)期口算計(jì)算共5093道題
- 建筑工程質(zhì)量管理體系培訓(xùn)講義
- 消防檢測(cè)應(yīng)急預(yù)案3篇
- 14S501-1 球墨鑄鐵單層井蓋及踏步施工
- 70周歲老人三力測(cè)試模擬能力考試題答案
- 外科學(xué)(1)智慧樹知到答案章節(jié)測(cè)試2023年溫州醫(yī)科大學(xué)
- 哈利波特課件完整版
- Python數(shù)據(jù)科學(xué)方法與實(shí)踐(山東聯(lián)盟)智慧樹知到答案章節(jié)測(cè)試2023年山東師范大學(xué)
- 土地增值稅稅源明細(xì)表(從事房地產(chǎn)開(kāi)發(fā)的納稅人清算適用、從事房地產(chǎn)開(kāi)發(fā)的納稅人按核定征收方式清算適用、納稅人整體轉(zhuǎn)讓在建工程適用)
- hsk5-成語(yǔ)學(xué)習(xí)知識(shí)
- 河道清理工程環(huán)境影響評(píng)價(jià)報(bào)告書
- GB/T 28712.1-2012熱交換器型式與基本參數(shù)第1部分:浮頭式熱交換器
評(píng)論
0/150
提交評(píng)論