版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第1章 Visual C#.NET 2008開發(fā)環(huán)境概述 Visual C#.NET包括兩部分內(nèi)容,一部分是.NET框架,一部分是C#語言。本章將首先概述.NET框架的歷史、主要內(nèi)容(公共語言運(yùn)行庫和框架類庫)、基于.NET框架的Windows Forms和ASP.NET的程序開發(fā),接著分析C#語言的特點(diǎn)以及相比其他語言的優(yōu)勢,然后介紹Visual Studio 2008的系統(tǒng)需求和安裝過程,最后解釋.NET框架與XML、Web服務(wù)、ADO.NET等常見技術(shù)的關(guān)系 章節(jié)內(nèi)容1.1.NET框架概述 1.2 C#語言概述 1.3 Visual Studio 2008開發(fā)工具安裝 1.4 .NET與
2、其他技術(shù)的關(guān)系1.5 小結(jié) 1.1.1 .NET框架的歷史2002年初,微軟發(fā)布了Visual Studio.NET 2002開發(fā)工具,也推出了.NET框架的第一個版本1.0。2003年春天,微軟發(fā)布了Visual Studio.NET 2003以及.NET Framework 1.1 2005年底,.NET Framework 2.0和Visual Studio 2005以及SQL Server 2005一起發(fā)布。 會有啟發(fā)和幫助。2006年底,伴隨Vista操作系統(tǒng),Microsoft推出了.NET Framework 3.0。 2007年底,微軟發(fā)布了Visual Studio.NET
3、2008以及.NET Framework 3.5 1.1.2 什么是.NET框架1.1.3 公共語言運(yùn)行庫CLR公共語言運(yùn)行時(shí)相當(dāng)于Java中的虛擬機(jī)。所有.NET應(yīng)用程序都是在CLR上運(yùn)行的 。.NET程序執(zhí)行原理 1.1.4 .NET Framework類庫1.1.5 Windows Forms程序開發(fā)概述Windows FormsASP.NETWeb Forms /Web Service.NET框架基礎(chǔ)類庫(FCL)GDI+(圖形呈現(xiàn)引擎)ADO.NET數(shù)據(jù)訪問庫網(wǎng)路通信/遠(yuǎn)程通信/程序通信代碼訪問的安全性1.1.6 ASP.NET開發(fā)框架概述ASP.NET具有如下特點(diǎn)。采用代碼隱藏技術(shù)
4、將代碼和標(biāo)記分離,使用C#等面向?qū)ο蟮恼Z言,簡單明了。同時(shí)代碼只在服務(wù)器端編譯運(yùn)行,開發(fā)人員不再需要在客戶端代碼和服務(wù)器端來回切換,提高了工作效率。Web窗體簡單明了,開發(fā)人員只需將控件拖放在頁面上,然后編寫代碼實(shí)現(xiàn)控件的效果即可完成以往需要大量代碼才能實(shí)現(xiàn)的功能。提供了服務(wù)器控件。這是Web窗體編程模型的主要組件,ASP.NET服務(wù)器控件映射HTML中的一些元素,提供了強(qiáng)有力的服務(wù)器編程能力。支持Web服務(wù)。這是ASP.NET的關(guān)鍵之處,它允許開發(fā)人員通過一次性編程為互聯(lián)網(wǎng)上的應(yīng)用提供組件服務(wù)。Web服務(wù)基于SOAP(簡單對象訪問協(xié)議),因此可以跨平臺進(jìn)行操作。ASP.NET提供了強(qiáng)有力的緩
5、存引擎,開發(fā)人員可以通過減少從Web服務(wù)器和數(shù)據(jù)庫處理器處理加載的次數(shù)來改善程序的性能。1.2 C#語言概述 Microsoft是這樣描述C#的:“C#是從C和C+派生來的一種簡單、現(xiàn)代、面向?qū)ο蠛皖愋桶踩木幊陶Z言”。C#是從C/C+編程語言家族移植過來的,旨在結(jié)合Visual Basic的快速開發(fā)能力和C+的強(qiáng)大靈活的能力。1.2 .1 C#語言的特點(diǎn)(1)簡潔的語法 (2)精心的面向?qū)ο笤O(shè)計(jì)(3)與Web的緊密結(jié)合。 (4)優(yōu)秀的安全性與錯誤處理能力。 1.2.2 與其他語言的比較分析(1)C#語言與C+語言的比較分析如下編譯目標(biāo):C+代碼直接編譯為本地可執(zhí)行的代碼,而C#語言默認(rèn)編譯為
6、中間語言代碼,執(zhí)行時(shí)再通過實(shí)時(shí)編譯器將需要的模塊臨時(shí)編譯為本地代碼。內(nèi)存管理:C+語言需要適時(shí)地刪除動態(tài)分配給對象的內(nèi)存資源,而C#語言則不必如此。C#語言采用垃圾回收機(jī)制,能夠自動在合適的時(shí)機(jī)回收不再使用的內(nèi)存資源。指針:C+語言中會大量地使用指針,而C#語言使用對類實(shí)例的引用。若要在C#語言中使用指針,必須聲明為非安全的,不過通常情況下在C#語言中不必使用指針。字符串處理:在C#語言中,字符串是作為一種基本數(shù)據(jù)類型來使用的,因此相比C+語言中對字符串的處理要簡單得多。多繼承:C+語言允許類的多繼承,而C#語言只允許類的單繼承,但可以通過接口實(shí)現(xiàn)多繼承。1.2.2 與其他語言的比較分析(2)
7、 C#語言與Java語言的比較分析如下從語法上講,C#語言和Java語言非常相似,只是在細(xì)節(jié)上有一些差別。實(shí)際上,C#語言和Java語言的主要差別不在語言本身,而在它們所執(zhí)行的平臺上。Java程序需要一個運(yùn)行環(huán)境JRE(Java Runtime Environment)來執(zhí)行代碼,但JRE只限于在Java這一門語言中使用;C#語言也需要一個運(yùn)行環(huán)境CLR(Common Language Runtime),但是CLR提供了對多種語言的支持。Java源代碼可以被編譯為字節(jié)代碼的一種中間狀態(tài),然后由已提供的虛擬機(jī)執(zhí)行這些字節(jié)代碼;C#代碼也被編譯為一種中間狀態(tài),稱為中間語言(MSIL),但是中間語言
8、代碼則被傳輸?shù)接蒀LR管理的執(zhí)行進(jìn)程上,然后通過CLR的實(shí)時(shí)編譯器編譯為本地代碼來執(zhí)行。與Java語言相比,C#語言也存在很多不同和改進(jìn)之處。例如,C#語言的文件名不受文件中類名的限制,而在Java語言中則有此限制。另外,C#語言也提供了一些在Java語言中沒有的功能,如運(yùn)算符重載、封箱和裝箱以及方法隱藏等。1.2.2 與其他語言的比較分析(3)C#語言與VB.NET語言的比較分析如下。和C#語言一樣,VB.NET語言也是基于.NET Framework和CLR的高級語言。C#語言有一些VB.NET語言所不具備的特性。例如,C#語言可以使用非托管代碼、移位操作符、內(nèi)嵌的文檔(XML)和運(yùn)算符重
9、載等。VB.NET語言也有其自身的優(yōu)點(diǎn)。對于熟悉VB語言的開發(fā)人員,既可以使用.NET之前的語法格式及函數(shù),也可以使用.NET規(guī)定的語法格式和面向?qū)ο蟮脑O(shè)計(jì)思想。由于C#語言最初就完全按照面向?qū)ο蟮乃枷雭碓O(shè)計(jì),而且使用的全部是.NET框架定義的語法格式,不存在與.NET之前版本兼容的問題,因此結(jié)構(gòu)更加清晰,語法更加簡潔。C#語言作為一種高級語言標(biāo)準(zhǔn),其基本的內(nèi)部實(shí)現(xiàn)形式是公開的,因此更容易被多種平臺接受和廣泛地應(yīng)用。1.2.3 C#與.NET FrameWork、CLR、Visual Studio.NET的版本關(guān)系時(shí)間C#版本CLR版本.NET Framework版本Visual studio
10、.NET版本20021.01.01.0Visual studio.NET 2002200Visual studio.NET 200320052.02.02.0Visual studio.NET 200520062.02.03.0Visual studio.NET 200520073.02.03.5Visual studio.NET 20081.3 Visual Studio 2008開發(fā)工具安裝項(xiàng)目配置要求支持的操作系統(tǒng)Windows Server 2003、Windows Vista、Windows XPCPU1.6GHz以上內(nèi)存384MB以上硬盤5400 RPM 5G以
11、上硬盤顯示分辨率1024768或以上IEIE6.0及以上數(shù)據(jù)訪問組件MDACMDAC 2.8以上 Visual Studio 2008 系統(tǒng)配置要求 1.3 Visual Studio 2008開發(fā)工具安裝1.4 .NET與其他技術(shù)的關(guān)系1.4.1 XML、Web服務(wù)與.NET框架XML:XML的全稱是Extensible Markup Language,主要作用是作為系統(tǒng)與系統(tǒng)之間傳輸數(shù)據(jù)的載體。 Web服務(wù):Web服務(wù)又稱XML Web Service(或WebXML),建立在XML公共協(xié)議基礎(chǔ)上,能夠快捷和方便地綜合各種系統(tǒng)、商務(wù)和應(yīng)用平臺, 1.4.2 .NET 框架與ADO.NET組
12、件的整合方式ADO.NET是一些與數(shù)據(jù)庫訪問相關(guān)的類的集合,包含用于連接數(shù)據(jù)庫、執(zhí)行命令和檢索結(jié)果的.NET框架數(shù)據(jù)提供程序。而.NET框架除了ADO.NET的類的集合外,還包含程序的整個運(yùn)行支持環(huán)境。 1.5 小結(jié)C#是一種編程語言,.NET是一種開發(fā)框架,C#和.NET的關(guān)系如同魚與水的關(guān)系。所以,如果要使用C#高效地開發(fā)應(yīng)用程序,掌握.Net框架就顯得非常重要。對于.NET框架,本章主要介紹了其兩個最重要的組件,即公共語言運(yùn)行庫(CLR)和.NET框架類庫(FCL)。C#語言是.NET框架的首選語言,因?yàn)樗苯用嫦?NET框架而生,具有其他語言所沒有的后發(fā)優(yōu)勢。Visual Studio
13、 2008是一套完整的編程、調(diào)試、生成、部署工具。借助Visual Studio 2008集成開發(fā)環(huán)境,可快速開發(fā)基于.NET Framework 3.5和C#3.0的各種類型的應(yīng)用程序。有關(guān)Visual Studio 2008集成開發(fā)環(huán)境的介紹可參見后續(xù)章節(jié)。本章最后介紹了.NET與XML、WEB服務(wù)、ADO.NET等常見技術(shù)之間的關(guān)系。在.NET中,這些技術(shù)可以實(shí)現(xiàn)無縫的集成。第2章 熟練使用Visual Studio 2008工具 “工欲善其事,必先利其器”,為了能夠更高效地利用Visual Studio 2008開發(fā)工具,必須能熟練掌握Visual Studio 2008集成開發(fā)環(huán)境。
14、章節(jié)內(nèi)容2.1Visual Studio 2008環(huán)境配置2.2解決方案資源管理器的使用 2.3 屬性管理器的使用 2.4 IDE中的快捷鍵 2.5 小結(jié) 2.1.1 環(huán)境設(shè)置配置設(shè)置窗口,即環(huán)境配置設(shè)計(jì)器,主要用于根據(jù)所使用的語言優(yōu)化配置環(huán)境 (1)如果首次啟動Visual Studio 2008,會提示選擇默認(rèn)的環(huán)境配置.(2)環(huán)境配置完成后,若想修改配置,可在菜單欄中單擊【工具】|【導(dǎo)入導(dǎo)出設(shè)置】命令。2.1.1 環(huán)境設(shè)置也可以從一個文件中導(dǎo)入已經(jīng)定義好的環(huán)境設(shè)置。 2.1.1 環(huán)境設(shè)置也可以把當(dāng)前設(shè)置全部或部分導(dǎo)出到.vssettings文件中,可以在其他計(jì)算機(jī)上使用此文件,也可以與其
15、他開發(fā)人員共享此文件。例如,可以選擇只導(dǎo)出快捷鍵組合和編輯器設(shè)置 。2.1.1 環(huán)境設(shè)置2.1.2 工具欄配置2.1.3 工具箱配置打開工具箱:【視圖】|【工具箱】命令隱藏工具箱:【窗口】|【隱藏】命令將工具箱設(shè)為自動關(guān)閉:【窗口】|【自動隱藏】將工具箱移動到其他位置:??抗ぞ呦洌汗ぞ呦滹@示為選項(xiàng)卡式編輯窗口:恢復(fù)工具箱的所有默認(rèn)選項(xiàng)卡及其默認(rèn)圖標(biāo)2.2 解決方案資源管理器的使用2.3 屬性管理器的使用打開屬性管理器 查看與修改屬性添加事件 2.4 IDE中的快捷鍵(1)調(diào)試快捷鍵 快捷鍵功能快捷鍵功能F5啟動調(diào)試Ctrl+F9啟用/停止斷點(diǎn)Shift+F5停止調(diào)試Ctrl+Shift+F9刪
16、除所有斷點(diǎn)Ctrl+F5開始執(zhí)行(不調(diào)試)F10逐過程Shift+F5 停止調(diào)試F11逐語句Ctrl+Shift+F5重啟調(diào)試Ctrl+F10運(yùn)行到光標(biāo)處F6編譯/生成解決方案Ctrl+F6切換所有打開編輯窗口F9插入/取消斷點(diǎn)F7切換代碼和窗體設(shè)計(jì)器2.4 IDE中的快捷鍵(1)調(diào)試快捷鍵 快捷鍵功能快捷鍵功能F5啟動調(diào)試Ctrl+F9啟用/停止斷點(diǎn)Shift+F5停止調(diào)試Ctrl+Shift+F9刪除所有斷點(diǎn)Ctrl+F5開始執(zhí)行(不調(diào)試)F10逐過程Shift+F5 停止調(diào)試F11逐語句Ctrl+Shift+F5重啟調(diào)試Ctrl+F10運(yùn)行到光標(biāo)處F6編譯/生成解決方案Ctrl+F6切換
17、所有打開編輯窗口F9插入/取消斷點(diǎn)F7切換代碼和窗體設(shè)計(jì)器2.4 IDE中的快捷鍵(2)編輯快捷鍵 快捷鍵功能快捷鍵功能Ctrl+A全選Alt+F12查找符號(列出所有的查找結(jié)果)Ctrl+C復(fù)制選中內(nèi)容Shift+F12查找選中對象所有引用Ctrl+V粘貼復(fù)制內(nèi)容Ctrl+Shift+V循環(huán)粘貼剪貼板中的內(nèi)容Ctrl+Z撤銷編輯Ctrl+左右箭頭鍵一次可以移動一個單詞Ctrl+S保存項(xiàng)目Ctrl+上下箭頭鍵滾動代碼屏幕,但不移動光標(biāo)位置Ctrl+K,K添加刪除書簽Ctrl+Shift+L刪除當(dāng)前行Ctrl+K,I快速信息Ctrl+M,O折疊代碼定義Ctrl+K,M生成方法存根Ctrl+M,L
18、展開代碼定義Ctrl+K,X插入代碼段Ctrl+M,P停止大綱顯示快捷鍵功能快捷鍵功能Ctrl+K,S插入外側(cè)代碼Shift+Alt+箭頭鍵選擇矩形文本Ctrl+W選中整個單詞Alt+鼠標(biāo)左鍵選擇矩形文本Ctrl+Backspace刪除光標(biāo)左邊所有Ctrl+Shift+U全部變?yōu)榇髮慍trl+Delete刪除光標(biāo)右邊所有Ctrl+U全部變?yōu)樾慡hift+Delete整行刪除Ctrl+Shift+End選擇到文檔末尾Ctrl+Up在可見范圍內(nèi)向上移動光標(biāo)Ctrl+Shift+Home選擇到文檔開始Ctrl+Down在可見范圍內(nèi)向下移動光標(biāo)Shift+End選擇到行尾Shift+F3查找上一個S
19、hift+Home選擇到行開始處Ctrl+H替換Shift+Alt+End垂直選擇到最后尾Ctrl+Shift+H在文件中替換Shift+Alt+Home垂直選擇到最前面2.4 IDE中的快捷鍵2.4 IDE中的快捷鍵(3)窗口快捷鍵 快捷鍵功能快捷鍵功能F4打開屬性窗口Ctrl+Shift+N新建項(xiàng)目Ctrl+Shift+C顯示類視圖窗口Ctrl+Shift+O打開項(xiàng)目Ctrl+Alt+B斷點(diǎn)窗口Ctrl+Shift+S全部保存Ctrl+Alt+I即時(shí)窗口Ctrl+Shift+A新建項(xiàng)Ctrl+Alt+V局部變量監(jiān)視窗口Ctrl+O打開文件Ctrl+Alt+W監(jiān)視窗口Ctrl+N新建文件Ct
20、rl+Tab活動窗口切換Ctrl+F4關(guān)閉文檔窗口2.5 小結(jié)Visual Studio 2008是高度集成的IDE,了解和熟練使用這個工具是進(jìn)一步學(xué)習(xí)C#.Net的前提,也是以后利用Visual Studio 2008進(jìn)行實(shí)際軟件開發(fā)的基礎(chǔ)。本章主要介紹了Visual Studio 2008中最常用的環(huán)境設(shè)置、工具欄、工具箱、解決方案資源管理器和屬性管理器,并在最后介紹了Visual Studio 2008中常用快捷鍵,掌握這些管理器和常用的快捷鍵對快速開發(fā)軟件具有重要的實(shí)際意義。第3章 C#.NET語言基礎(chǔ) 本章將以第一個C#程序“HelloWorld”為例,向讀者演示C#應(yīng)用程序的代碼組
21、成和編譯過程,然后以開發(fā)一個真實(shí)的“學(xué)生信息管理系統(tǒng)”為背景,詳細(xì)講述數(shù)據(jù)類型、常量、變量等C#語言基礎(chǔ)知識。章節(jié)內(nèi)容3.1 引言3.2 編寫第一個C#程序3.3 數(shù)據(jù)類型3.4 常用類型3.5 常量和變量3.6 小結(jié) 3.1 引言計(jì)算機(jī)中的高級語言(如C#、C+等)和現(xiàn)實(shí)世界中的人類語言(如漢語、英語等)有很多相似之處:(1)人類語言中的組成元素有單詞、短語、句子、段落和文章,在計(jì)算機(jī)高級語言中相對應(yīng)有常量與變量、表達(dá)式、語句、函數(shù)和程序。(2)人類語言中的單詞、短語和句子有不同的性質(zhì),如形容詞、動詞短語、感嘆句等,計(jì)算機(jī)高級語言中的常量、變量、表達(dá)式也有不同的數(shù)據(jù)類型,如整型常量、浮點(diǎn)型變
22、量、字符類型表達(dá)式等。了解這些相似之處,對理解和掌握計(jì)算機(jī)高級語言會有啟發(fā)和幫助。3.2 編寫第一個C#程序C#應(yīng)用程序的常用類型主要有3種,分別為控制臺應(yīng)用程序、Windows窗體應(yīng)用程序和Web應(yīng)用程序,具體特點(diǎn)分別如下。(1)控制臺應(yīng)用程序是沒有窗口的應(yīng)用程序,通過鍵盤以輸入命令行的形式操作程序。先前的DOS程序大都是這種類型程序,現(xiàn)在一般用作后臺服務(wù)。(2)Windows窗體應(yīng)用程序是有窗口的應(yīng)用程序,主要通過鼠標(biāo)進(jìn)行操作。因其圖形化操作和界面直觀等優(yōu)點(diǎn),非常受歡迎,當(dāng)前大多數(shù)應(yīng)用程序都是這種類型。(3)Web應(yīng)用程序其實(shí)就是將Windows窗體應(yīng)用程序以網(wǎng)頁的形式表現(xiàn)出來,是Web網(wǎng)
23、站與傳統(tǒng)應(yīng)用程序的結(jié)合體。這種類型的應(yīng)用程序越來越多,有著廣泛的應(yīng)用前景,例如網(wǎng)上辦公和網(wǎng)上購物系統(tǒng),都是這種類型的應(yīng)用程序。 3.2 編寫第一個C#程序控制臺應(yīng)用程序比較簡單,通常作為初學(xué)者學(xué)習(xí)的第一種程序類型,用來熟悉最基本的語法知識。本節(jié)介紹如何在Visual Studio2008下創(chuàng)建C#控制臺應(yīng)用程序“HelloWorld”。3.2.1 代碼結(jié)構(gòu)創(chuàng)建第一個“HelloWorld”控制臺應(yīng)用程序步驟:打開Visual Studio 2008,在菜單欄中單擊【文件】|【新建】|【項(xiàng)目】命令,彈出【新建項(xiàng)目】窗口。此窗口列出了Visual C#能夠創(chuàng)建的應(yīng)用程序類型,選擇“控制臺應(yīng)用程序”
24、作為項(xiàng)目類型,并將應(yīng)用程序的名稱更改為“HelloWorld”,單擊【確定】按鈕,如圖3-1所示。新建“HelloWorld”項(xiàng)目 代碼演示using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace HelloWorld class Program static void Main(string args) Console.WriteLine(Hello World!); Console.ReadLine(); 命名空間類入口函數(shù)3.2.1 代碼結(jié)構(gòu)C#程序由命名空間(n
25、amespace)、類(class)和程序入口函數(shù)(Main函數(shù))組成。命名空間是類的邏輯組合。命名空間和類的關(guān)系可以理解為文件夾和文件的關(guān)系。使用命名空間使得類之間更具有組織性,且避免了類的命名沖突問題。 如果要創(chuàng)建一個類,要使用namespace給出命名空間的名稱;如果使用類,要使用using關(guān)鍵字指定該類所屬的命名空間,或給出類的“絕對路徑”,即“命名空間名類名”;如果要使用同一個命名空間的類,則不需要使用using來引用命名空間。 3.2.1 代碼結(jié)構(gòu)類即一組屬性和方法的集合。C#使用類來搭建整個應(yīng)用程序,沒有全局函數(shù)和全局變量,這也體現(xiàn)了面向?qū)ο蟮某绦蛟O(shè)計(jì)思想。Main函數(shù)是C#應(yīng)用
26、程序的入口,即C#應(yīng)用程序執(zhí)行的第一個函數(shù)。C#程序由多個類搭建而成,入口就是Main函數(shù)。一個應(yīng)用程序中必須有一個Main函數(shù)且只能有一個類包含Main函數(shù),并要求“Main”的首字母大寫。3.2.2 編譯運(yùn)行編譯過程:.cs文件-.exe可執(zhí)行程序。對于Visual Studio 2008開發(fā)平臺下的C#應(yīng)用程序,可單擊工具欄中的啟動按鈕或按【F5】鍵(按【F5】鍵進(jìn)入調(diào)試模式,按【Ctrl】+【F5】組合鍵進(jìn)入非調(diào)試模式)來編譯運(yùn)行。程序運(yùn)行界面運(yùn)行按鈕代碼分析using System;表明該程序要使用System命名空間下的類,因此用using來指明引用的命名空間。如果不指明命名空間,
27、就使用該空間下的類,會出現(xiàn)編譯錯誤。namespace HelloWorld表明該程序使用namespace關(guān)鍵詞聲明了一個命名空間HelloWorld,如果其他類要調(diào)用該命名空間下定義的類,需要使用using關(guān)鍵詞,即using HelloWorld。class Program表明該程序使用class關(guān)鍵詞定義了一個類Program,該類屬于命名空間HelloWorld 代碼分析static void Main(string args)聲明了Main函數(shù),static是修飾符(其作用將在后續(xù)章節(jié)詳細(xì)介紹),void表明Main函數(shù)沒有返回值,string args是參數(shù)列表。 Console
28、.WriteLine(Hello World!);使用命名空間System里的Console類中的WriteLine函數(shù)輸出字符串“Hello World”。如果程序頭未引用System命名空間,須使用System.Console.WriteLine全稱。 Console.ReadLine();調(diào)用命名空間System中Console類中的ReadLine函數(shù),該函數(shù)等待鍵盤輸入,按【Enter】鍵結(jié)束等待。 3.3 數(shù)據(jù)類型當(dāng)學(xué)習(xí)某一門人類語言時(shí),例如漢語中的詞組,會發(fā)現(xiàn)漢語中的詞語有名詞和動詞等分類,這稱為詞性。計(jì)算機(jī)高級語言的數(shù)據(jù)有整型和浮點(diǎn)型等,這叫做數(shù)據(jù)類型。數(shù)據(jù)類型的作用:編譯器可
29、根據(jù)數(shù)據(jù)類型判斷它們是否可以參加某種運(yùn)算,從而幫助開發(fā)人員減少語法錯誤。 不同的數(shù)據(jù)類型,在內(nèi)存中所占字節(jié)數(shù)不同,如果要處理的數(shù)據(jù)量非常大,選擇適合的數(shù)據(jù)類型能夠在很大程度上節(jié)省內(nèi)存空間。C#數(shù)據(jù)類型圖3.3 數(shù)據(jù)類型值類型和引用類型是C#中兩種主要的數(shù)據(jù)類型;var類型為C#3.5新增類型,詳細(xì)介紹參見第13章。指針類型僅可用于unsafe模式,用法類似C+中的指針,這里不再贅述。(unsafe模式引用非.net DLL提供的如C編寫的外部函數(shù),需要指針來傳遞該函數(shù) ,優(yōu)點(diǎn)是可以調(diào)用其他dll的函數(shù),提高了兼容性 ;缺點(diǎn)是容易內(nèi)存泄漏)數(shù)據(jù)類型劃分依據(jù)C#數(shù)據(jù)類型按照數(shù)據(jù)的存儲模型分為值類型
30、、引用類型、指針類型和var類型 。數(shù)據(jù)的存儲模型指的是數(shù)據(jù)在內(nèi)存中的保存方式。內(nèi)存中有兩個區(qū)域可以存放數(shù)據(jù),一個是棧區(qū),另外一個是堆區(qū)。棧區(qū)存放是編譯期間就分配好的內(nèi)存空間,不會動態(tài)增長;堆區(qū)是程序運(yùn)行期間動態(tài)分配的內(nèi)存空間。因此存儲在棧中的數(shù)據(jù)長度通常較小且固定,存儲在堆中的數(shù)據(jù)可以動態(tài)增長且所需空間通常較大。值類型的數(shù)據(jù)存儲所需空間通常較小,使用棧區(qū)的內(nèi)存,而引用類型的數(shù)據(jù)所需空間較大,使用堆區(qū)的內(nèi)存。3.4 常用類型3.4.1 整型3.4.2 浮點(diǎn)型3.4.3 decimal類型3.4.4 布爾型3.4.5 結(jié)構(gòu)體類型3.4.6 枚舉類型3.4.7 string類型3.4.8 Obje
31、ct類型3.4.9 數(shù)據(jù)類型的轉(zhuǎn)換3.4.1 整型整型就是整數(shù)類型,C#整型共有9種數(shù)據(jù)類型 。類型數(shù)值范圍特征sbyte-128127有符號8位整數(shù)byte0255無符號8位整數(shù)charU+0000U+ffff16位Unicode字符short-32,76832,767有符號16位整數(shù)ushort065,535無符號16位整數(shù)int-2,147,483,6482,147,483,647有符號32位整數(shù)uint04,294,967,295無符號32位整數(shù)long-9,223,372,036,854,775,8089,223,372,036,854,775,807有符號64位整數(shù)ulong018
32、,446,744,073,709,551,615無符號64位整數(shù)3.4.1 整型注意:有符號指的是第一位二進(jìn)制數(shù)表示符號,0代表正數(shù),1代表負(fù)數(shù);無符號指的是所有的位數(shù)都用來表示數(shù)值,沒有符號位,均為正數(shù)。例如,sbyte是一個有符號8位二進(jìn)制數(shù),第一位用來表示符號,因此sbyte表示的范圍為-128-127;byte是一個無符號8位二進(jìn)制數(shù),8位全用來表示數(shù)值,表示范圍為0-255,其他類型可以依此類推。char類型也是一種整型,常用來表示字符,由16位二進(jìn)制數(shù)組成,表示范圍為0-65535,代表世界上大多數(shù)書面語言符號。這種字符又稱為Unicode字符,在使用時(shí)可以寫成字符、十六進(jìn)制和un
33、icode字符,例如字符A可以表示為A、x0041和u0041。 使用整型 byte age=18; char sex=男; long StudentNumber=200745054489;注意,char類型一次只能賦值一個字符,不能賦值兩個字符,例如男生。注意整型溢出,byte age=300,產(chǎn)生溢出錯誤。3.4.1 整型對于等號右邊的整數(shù)常數(shù),C#會按照默認(rèn)的方式來判斷所屬類型,即按照一定的順序判斷整數(shù)的類型,即int、uint、long、ulong。如果不希望C#使用上述默認(rèn)的方式來判斷一個整數(shù)數(shù)值常數(shù)的類型,可以通過添加后綴來指定整數(shù)常數(shù)的類型。u(或者U)后綴:加在整數(shù)常數(shù)后面,代
34、表該常數(shù)是uint類型或者ulong類型。具體類型由常數(shù)的實(shí)際值決定。C#優(yōu)先匹配uint類型。l(或者L)后綴:加在整數(shù)常數(shù)后面,代表該常數(shù)是long類型或者ulong類型。具體類型由常數(shù)的實(shí)際值決定。C#優(yōu)先匹配long類型。ul后綴:加在整型常數(shù)后面,代表該常數(shù)是ulong類型。例如:uint age=18U; long StudentNumber =200745054489L;對于不可打印字符,例如回車符、換行符等,則需要采用轉(zhuǎn)義符。 char c=a; Console.WriteLine(c);Console.WriteLine(abcn)轉(zhuǎn)義符字符十六進(jìn)制表示單引號0 x0027雙
35、引號0 x0022反斜杠0 x005C0空字符0 x0000a發(fā)出一聲響鈴0 x0007b退格0 x0008n換行0 x000Ar回車0 x000Df換頁符0 x000Ct水平制表符0 x0009v垂直制表符0 x000B3.4.1 整型3.4.2 浮點(diǎn)型在日常生活中,像學(xué)生成績,要用小數(shù)表示。在C#中使用浮點(diǎn)型表示小數(shù),浮點(diǎn)就是指小數(shù)點(diǎn) 。C#語言中有兩種小數(shù)類型,分別為32位單精度浮點(diǎn)型float和64位雙精度浮點(diǎn)型double。精度指的是小數(shù)位數(shù),小數(shù)位數(shù)越多,精度越高,小數(shù)位數(shù)越少,精度越低。float類型中小數(shù)位數(shù)為7位,即可精確到小數(shù)點(diǎn)后7位,double類型中小數(shù)位數(shù)為15或16
36、位,即可精確到小數(shù)點(diǎn)后15或16位,是float類型的兩倍,因此稱為雙精度浮點(diǎn)型。使用浮點(diǎn)型注意,對于一個小數(shù),其默認(rèn)類型都是double類型,如果需要指定為float類型,必須在小數(shù)后面添加F或f后綴。示例: double score1=5.648; float score=9.54; /編譯錯誤 float score=9.56f;3.4.3 decimal類型在日常生活中,需要有表示財(cái)務(wù)信息等的要求精度更高的小數(shù),在C#中需要用decimal類型表示。decimal類型由128位組成,其精度可達(dá)28位,表示范圍比float小,原因是decimal使用了更多的字節(jié)來表示小數(shù)。注意:如果需要
37、指定某小數(shù)為decimal類型,必須在小數(shù)的后面添加M或m后綴。 使用decimal類型 decimal schoolfees=3000.56m; decimal schoolfees=3000.56;/編譯錯誤不能隱式地將 Double 類型轉(zhuǎn)換為“decimal”類型注意,在程序代碼中書寫一個小數(shù)常數(shù)時(shí),C#默認(rèn)該小數(shù)常數(shù)為double類型。如果不希望C#使用上述默認(rèn)的方式來判斷一個小數(shù)常數(shù)的類型,可以通過為數(shù)值常數(shù)添加后綴的方法來指定小數(shù)常數(shù)的類型??梢允褂玫臄?shù)值常數(shù)后綴有以下兩種。f(或者F)后綴:加在任何一種數(shù)值常數(shù)后面,代表該常數(shù)是float類型。m(或者M(jìn))后綴:加在任何一種數(shù)值
38、常數(shù)后面,代表該常數(shù)是decimal類型。3.4.3 布爾型日常生活中的,常有是否黨員這樣的信息。在C#中,這類信息用布爾型(bool)表示。C#語言中的布爾(bool)型只包含兩個值,即true和false,主要用于“是否”類型的數(shù)據(jù)上。使用布爾型 bool IsPartyMember=false; bool IsPartyMember =0;/編譯錯誤注意,在C#中,bool值不能和整數(shù)值相互轉(zhuǎn)化,這點(diǎn)和C或C+不同。如果試圖使用0表示false,非0值表示true,將導(dǎo)致編譯錯誤。3.4.5 結(jié)構(gòu)體類型在日常生活中,例如學(xué)生基本信息由姓名、性別、年齡、班級和學(xué)院等信息組成,是一個整體,不
39、可分割。對于諸如此類的包含一組信息的信息,在C#中需要使用結(jié)構(gòu)體表示。結(jié)構(gòu)體類型是一種復(fù)合值類型,是由一系列相關(guān)的、但類型不一定相同的數(shù)據(jù)組織在一起而成的,是具有某一種組織結(jié)構(gòu)的整體,使用struct關(guān)鍵字來創(chuàng)建,使用“”操作符可以訪問結(jié)構(gòu)體的成員。使用結(jié)構(gòu)體類型struct student public string name; public uint age; public char sex; public string DepartmentName; public string DepartmentTel; . . 注意:public修飾符用來修飾變量name,表示該變量是公共變量,可以
40、被外界訪問,默認(rèn)為private,表示私有變量,不可以被外界訪問。 使用結(jié)構(gòu)體類型上述代碼中結(jié)構(gòu)體成員較多,且其中學(xué)院名稱和學(xué)院電話兩個成員都用于描述學(xué)院的信息,因此可以將其兩者構(gòu)成一個結(jié)構(gòu)體,嵌套在其中,使得結(jié)構(gòu)體的組織更具邏輯性。struct student public string name; public uint age; public char sex; public struct department public string DepartmentName; public string DepartmentTel; . . 結(jié)構(gòu)體類型示例namespace structstu
41、dent class Program struct student public string name; public uint age; public char sex; public struct department public string DepartmentName; public string DepartmentTel; static void Main(string args) student stu1; student.department d1; =John; d1. DepartmentName =computer; 3.4.6 枚舉類型日常生活中,有這么一類信息,
42、如學(xué)生的學(xué)位有學(xué)士、碩士和博士,而且只有這3個“有限狀態(tài)”值,C#語言提供了枚舉類型。枚舉類型就是一組有相應(yīng)含義的單詞的集合,稱為枚舉成員列表。該組單詞集合對應(yīng)著一組邏輯上密不可分的整數(shù),這些整數(shù)稱為對應(yīng)單詞的值。枚舉類型是一種值類型,由enum關(guān)鍵詞創(chuàng)建,使用“”符號可以取得枚舉成員的值。 使用枚舉類型using System;namespace EnumExample class Program enum degree bachelor,master,doctor; static void Main(string args) string s=His degree is +degree.b
43、achelor ; Console.WriteLine(s); 執(zhí)行上述代碼,輸出結(jié)果為:His degree is bachelor。使用枚舉類型注意事項(xiàng)每種枚舉類型具有一種基礎(chǔ)類型,此基礎(chǔ)類型可以是除char類型以外的任何整型。如果不指明基礎(chǔ)數(shù)據(jù)類型,則默認(rèn)為int類型。默認(rèn)情況下,第一個枚舉成員的值為0,后面每個枚舉成員的值依次遞增1。可以通過為枚舉成員賦值來改變默認(rèn)值,而且不同成員的值可以相同。對枚舉類型的數(shù)據(jù)可以進(jìn)行運(yùn)算操作,但要注意運(yùn)算后的枚舉類型數(shù)據(jù)的值應(yīng)在枚舉成員值的范圍之內(nèi)。枚舉類型示例正確代碼:enum range Max=1000, Min=10;enum Days Mo
44、n, Tue, Wed, Thu, Fri ,Sat, Sun;Days day=Days.Mon;Int i=(int)Days.Tue;/i=1enum Colors:shortRed=3,Yellow,Blue=3, Black;錯誤代碼enum Color:uint Red = -1,Green = -2,Blue = -3 ;/錯誤enum ColorRed = Green,Green,Blue; /錯誤注意,枚舉類型與結(jié)構(gòu)體類型不同,結(jié)構(gòu)體類型數(shù)據(jù)的值是一組復(fù)合值,而枚舉類型數(shù)據(jù)的值只能是枚舉成員列表中的某一個枚舉成員的值。3.4.7 string類型例如學(xué)生姓名,年級這樣的信息,
45、在C#中使用string類型表示 。string類型屬于引用類型,是系統(tǒng)提供的類System.String的別名,表示Unicode字符,因此可以認(rèn)為“string”和“String”在使用上沒有任何區(qū)別。創(chuàng)建一個string類型的字符串有如下兩種表達(dá)方式。使用雙引號將字符串括起來,對于特殊符號,可采用轉(zhuǎn)義符來表示。使用“”符號引起來,這樣字符串中的所有字符均被識別為普通字符,可以代替轉(zhuǎn)義符,減少了書寫上的麻煩。使用string類型String StudentName = 張山;string ClassName = 機(jī)電5班;string SchoolInfo= 北京大學(xué)簡稱為北大;strin
46、g SchoolInfo1=北京大學(xué)簡稱為北大;string SchoolInfo2=北京大學(xué)簡稱為“北大”;Console.WriteLine(StudentName);Console.WriteLine(ClassName);Console.WriteLine(SchoolInfo);Console.WriteLine(SchoolInfo1);Console.WriteLine(SchoolInfo2);執(zhí)行上述代碼,輸出結(jié)果如下:張山機(jī)電5班北京大學(xué)簡稱為“北大”北京大學(xué)簡稱為北大北京大學(xué)簡稱為“北大” 3.4.8 object類型Object類型是預(yù)定義類System.Object的
47、別名,它是C#中所有其他類型(預(yù)定義類型、用戶定義類型、引用類型和值類型)的基類,即所有類型都是直接或間接從object類型繼承的。因此,可以將任意類型的值賦給object類型的變量。使用object類型 object a; a=1; Console.WriteLine(a); 執(zhí)行上述代碼,運(yùn)行結(jié)果為:1。3.4.9 數(shù)據(jù)類型的轉(zhuǎn)換成績變量為float類型,在填寫成績時(shí),若輸入成績時(shí)填寫了整數(shù),則系統(tǒng)進(jìn)行計(jì)算時(shí)會自動將其轉(zhuǎn)換為浮點(diǎn)類型。又如在年齡一項(xiàng)填寫了小數(shù),系統(tǒng)進(jìn)行計(jì)算時(shí)需要先將其轉(zhuǎn)換為整數(shù)。C#語言的數(shù)據(jù)類型轉(zhuǎn)換分為隱式轉(zhuǎn)換和顯示轉(zhuǎn)換。隱式轉(zhuǎn)化是系統(tǒng)默認(rèn)的轉(zhuǎn)換類型,不需要加以聲明;顯式
48、轉(zhuǎn)化又稱為強(qiáng)制轉(zhuǎn)換,需要加以聲明。 隱式轉(zhuǎn)換 隱式轉(zhuǎn)換是系統(tǒng)默認(rèn)的、不需要加以聲明就可以進(jìn)行的轉(zhuǎn)換。例如:float score=68; long StudentNumber=20076868; 進(jìn)行隱式的類型轉(zhuǎn)換,實(shí)際就是從低精度、小范圍的數(shù)據(jù)類型轉(zhuǎn)換為高精度、大范圍的數(shù)據(jù)類型。這種轉(zhuǎn)換通常很順利,因?yàn)榇蠓秶愋偷淖兞烤哂凶銐虻目臻g存放小范圍類型的數(shù)據(jù)。 隱式類型轉(zhuǎn)換表源類型目的類型sbyteshort、int、long、float、double、decimalbyteshort、ushort、int、uint、long、ulong、float、double、decimalshortint、
49、long、float、double、decimalushortint、uint、long、ulong、float、double、decimalintlong、float、double、decimaluintlong、ulong、float、double、decimallong、ulongfloat、double、decimalfloatdoublecharushort、int、uint、long、ulong、float、double、decimal隱式轉(zhuǎn)換大部分類型都可以轉(zhuǎn)化為float、double和decimal類型,原因是這3種數(shù)據(jù)類型所表示值的范圍比較大。不存在浮點(diǎn)型到decimal類
50、型的相互轉(zhuǎn)換,原因是decimal所表示的范圍相比float、double較小,但是精度比float、double高。不存在到char類型的隱式轉(zhuǎn)化。注意,int類型的常數(shù)可轉(zhuǎn)換為sbyte、byte、short、ushort,但前提是常數(shù)的值處于上述類型的范圍之內(nèi)。例如,sbyte=122,122默認(rèn)類型為int,將整型轉(zhuǎn)化為sbye,盡管不符合表中隱式轉(zhuǎn)換的規(guī)則,但因?yàn)?22在sbyte類型的范圍之內(nèi),所以仍是正確的。顯示轉(zhuǎn)換顯式轉(zhuǎn)換,又稱強(qiáng)制轉(zhuǎn)換,可以理解為從高精度、大范圍的數(shù)據(jù)類型轉(zhuǎn)換為低精度、小范圍的數(shù)據(jù)類型。示例代碼: int age=(int)24.5;源類型目的類型sbyteb
51、yte、ushort、uint、ulong 或 charbytesbyte 或者charshortsbyte、byte、ushort、uint、ulong 或 charushortsbyte、byte、short 或 charintsbyte、byte、short、ushort、uint、ulong 或 charuintsbyte、byte、short、ushort、int 或 charlongsbyte、byte、short、ushort、int、uint、ulong 或 charulongsbyte、byte、short、ushort、int、uint、long 或 charcharsby
52、te、byte 或 shortfloatsbyte、byte、short、ushort、int、uint、long、ulong、char 或 decimaldoublesbyte、byte、short、ushort、int、uint、long、ulong、char、float 或 decimaldecimalsbyte、byte、short、ushort、int、uint、long、ulong、char、float 或 double3.5 常量和變量數(shù)據(jù)是計(jì)算機(jī)程序處理的主要對象。如前所述,數(shù)據(jù)可以是整型、浮點(diǎn)型等,這些類型的數(shù)據(jù)值在程序運(yùn)行過程中可以是變化的,也可以固定不變。在程序運(yùn)行的整個
53、過程中,其值始終不可改變的量稱為常量,其值可以變化的量稱為變量。一旦聲明了某種數(shù)據(jù)類型的常量或變量,系統(tǒng)就會為該常量或變量分配該數(shù)據(jù)類型相應(yīng)的空間,在該空間中存放該常量或變量的數(shù)據(jù)。3.5.1常量和變量的命名規(guī)則在C#中,使用常量和變量的基本原則為先定義,后使用。 命名規(guī)則:標(biāo)識符必須以字母或下劃線開頭。標(biāo)識符只能由字母、數(shù)字和下劃線組成,不能包含空格、標(biāo)點(diǎn)符號、運(yùn)算符。標(biāo)識符不能與C#中的關(guān)鍵字、庫函數(shù)名同名。C#允許在標(biāo)識符前加上前綴,即可以用前綴加上關(guān)鍵字作為標(biāo)識符的名稱,如using是合法的標(biāo)識符名。引入前綴的目的在于與其他語言進(jìn)行交互時(shí)避免沖突,因?yàn)閷?shí)際上并不是名稱的一部分,其他編程
54、語言會把它作為一個普通的標(biāo)識符。C#關(guān)鍵字abstractasbaseboolbreakbytecasecatchCharcheckedclassconstcontinuedecimaldefaultdelegatedodoubleelseenumeventexplicitexternfalsefinallyfixedfloatforforeachgotoifimplicitinintinterfaceinternalislocklongnamespacenewnullobjectoperatoroutoverrideparamsprivateprotectedpublicreadonlyre
55、freturnsbytesealedshortsizeofstackallocstaticstringstructswitchthisthrowtruetrytypeofuintulonguncheckedunsafeushortusingvirtualvoidvolatilewhile標(biāo)識符命名示例myVariableIsGood99Flake /錯誤_floortime2GetJiggyWidIt/錯誤short /錯誤if3.5.2 常量聲明和初始化一個常量要使用const關(guān)鍵字。常量一旦創(chuàng)建并同時(shí)賦予初值后,就再也不能改變,常量必須在聲明時(shí)初始化。如果想要改變常量的值,只有在常量被創(chuàng)建
56、且同時(shí)賦值時(shí)才能修改。 const float PassLine=60; PassLine =55;/錯誤3.5.3 變量聲明變量:每個變量具有一種類型,聲明時(shí)須給出數(shù)據(jù)類型。注意:在單獨(dú)的語句中,若聲明多個變量,不能指定不同的數(shù)據(jù)類型,否則編譯器將報(bào)錯。 int i; char c; int a,b; int a ,bool b;/編譯器報(bào)錯初始化變量C#編譯器需要使用某個初始值對變量進(jìn)行初始化,之后才能使用該變量。這樣可以防止開發(fā)人員無意中從其他程序遺留下來的內(nèi)存中獲取垃圾值,這一點(diǎn)是C#強(qiáng)調(diào)安全性的一個具體體現(xiàn)。 int i=10; char c; c=a; int a=5,b=6;初始
57、化變量變量分為局部變量和成員變量。局部變量為函數(shù)內(nèi)部聲明的變量,成員變量為類內(nèi)部聲明的變量。注意:對于局部變量,必須在代碼中顯式初始化,才能在其他語句中使用它們的值。對于類中的成員變量,如果沒有顯式初始化,系統(tǒng)會提供默認(rèn)值。初始化變量類成員變量的默認(rèn)值:對于sbyte、byte、short、ushort、int、uint、long 和ulong,默認(rèn)值為0。對于char,默認(rèn)值為x0000。對于float,默認(rèn)值為0.0f。對于double,默認(rèn)值為0.0d。對于decimal,默認(rèn)值為0.0m。對于bool,默認(rèn)值為false。對于枚舉類型,默認(rèn)值為0。對于結(jié)構(gòu)體類型,默認(rèn)值是通過將所有值類
58、型字段設(shè)置為它們的默認(rèn)值,將所有引用類型字段設(shè)置為null而產(chǎn)生的值。對于引用類型的變量,默認(rèn)值為null。 局部變量和成員變量初始化的示例 using System;namespace Student public class ClassStudent /成員變量 int age; void Print() Console.WriteLine(age); /局部變量 int i = 3; Console.WriteLine(i); int j; Console.WriteLine(j); /系統(tǒng)報(bào)錯。 注意:局部變量一定要先賦值后使用,成員變量也要先賦值后使用,只不過對于不賦值的成員變量,系
59、統(tǒng)會為成員變量提供一個默認(rèn)值。3.6 小結(jié)本章介紹了C#的語言基礎(chǔ),包括設(shè)計(jì)簡單C#程序、數(shù)據(jù)類型、常用值類型、數(shù)據(jù)類型之間的轉(zhuǎn)換、常量和變量。可以看出,C#的基本語法與C+很相似,但也有一些不同之處。例如,bool類型不能與整型類型相互轉(zhuǎn)換,C#中符號的使用區(qū)別等。第4章 運(yùn)算符與表達(dá)式4.1 引言4.2 單目運(yùn)算符4.3 雙目運(yùn)算符4.4 三目運(yùn)算符4.5 其他運(yùn)算符4.6 標(biāo)點(diǎn)符號4.7 運(yùn)算符優(yōu)先級4.8 正則表達(dá)式4.9 小結(jié) 4.1 引言C#提供了多種數(shù)據(jù)類型,以滿足各種數(shù)據(jù)存儲的需要,同時(shí)也提供了多種運(yùn)算符來滿足處理、計(jì)算數(shù)據(jù)的需要。根據(jù)處理操作對象的個數(shù)不同,運(yùn)算符大致分為三類
60、。單目運(yùn)算符,又稱一元運(yùn)算符;雙目運(yùn)算符,又稱二元運(yùn)算符;三目運(yùn)算符,又稱三元運(yùn)算符。大部分運(yùn)算符都是雙目運(yùn)算符,只有幾個單目運(yùn)算符和一個三目運(yùn)算符,另外還包括幾個其他運(yùn)算符,下面分別介紹這些運(yùn)算符。4.2 單目運(yùn)算符常見的單目運(yùn)算符有+(一元加)-(一元減)!(邏輯非)(按位求補(bǔ))+(一元遞增)-(一元遞減)type(強(qiáng)制類型轉(zhuǎn)換運(yùn)算符)一元加和一元減運(yùn)算符對所有數(shù)值類型均適用;邏輯非運(yùn)算符只對布爾類型適用;按位求補(bǔ)運(yùn)算符適用于int、uint、long和ulong類型;遞增和遞減運(yùn)算符適用于數(shù)值類型和枚舉類型。注意,為了提高程序代碼的可讀性,單目運(yùn)算符應(yīng)該緊挨著它們的操作數(shù),不能添加任何干
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二四年古建筑除銹刷漆保護(hù)修復(fù)合同
- 二零二五年度企業(yè)內(nèi)部安全生產(chǎn)承包合同范本4篇
- 20《霧在哪里》說課稿-2024-2025學(xué)年二年級上冊語文統(tǒng)編版(五四制)
- Module 1 Unit 2 Im Danny (說課稿)-2024-2025學(xué)年牛津上海版(試用本)英語二年級上冊
- 二零二五版智慧城市建設(shè)技術(shù)負(fù)責(zé)人及施工員勞務(wù)服務(wù)協(xié)議3篇
- 二零二五版工業(yè)廠房面積測繪及驗(yàn)收合同規(guī)范文本2篇
- 2025年度新能源發(fā)電項(xiàng)目投資合同法律保障措施3篇
- 二零二五年度彩鋼集裝箱租賃安裝合同3篇
- 二零二五版智能交通系統(tǒng)設(shè)計(jì)分包合同模板2篇
- 2025年度生態(tài)農(nóng)業(yè)園區(qū)場地租賃及農(nóng)業(yè)設(shè)施租賃合同4篇
- 橫格紙A4打印模板
- CT設(shè)備維保服務(wù)售后服務(wù)方案
- 重癥血液凈化血管通路的建立與應(yīng)用中國專家共識(2023版)
- 兒科課件:急性細(xì)菌性腦膜炎
- 柜類家具結(jié)構(gòu)設(shè)計(jì)課件
- 陶瓷瓷磚企業(yè)(陶瓷廠)全套安全生產(chǎn)操作規(guī)程
- 煤炭運(yùn)輸安全保障措施提升運(yùn)輸安全保障措施
- JTGT-3833-2018-公路工程機(jī)械臺班費(fèi)用定額
- 保安巡邏線路圖
- (完整版)聚乙烯課件
- 建筑垃圾資源化綜合利用項(xiàng)目可行性實(shí)施方案
評論
0/150
提交評論