




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、第1章 ASP.NET 3.5入門基礎.NET Framework是一個支持構建、部署和運行下一代應用程序和Web服務的完整Windows組件。ASP.NET是.NET Framework的一部分。它是一個統(tǒng)一的Web開發(fā)模型,包括創(chuàng)建企業(yè)級Web應用程序的所必需的各種服務。本章將講解ASP.NET 3.5的入門知識,主要介紹以下知識點網(wǎng)頁和網(wǎng)站。.NET Framework概述。ASP.NET概述。搭建ASP.NET網(wǎng)站開發(fā)環(huán)境。創(chuàng)建第一個ASP.NET網(wǎng)站Sample_01。1.1 網(wǎng)頁和網(wǎng)站隨著網(wǎng)絡技術的發(fā)展,網(wǎng)站的應用范圍越來越廣。網(wǎng)頁是網(wǎng)站不可缺少的元素,雖然網(wǎng)頁的樣式可以多種多樣、
2、實現(xiàn)的技術互不相同,但是這些網(wǎng)頁可以分為靜態(tài)網(wǎng)頁和動態(tài)網(wǎng)頁。1.1.1 靜態(tài)網(wǎng)頁通常,稱只包括HTML元素的網(wǎng)頁為靜態(tài)網(wǎng)頁。如果要修改該網(wǎng)頁,可以使用專門的網(wǎng)頁制作工具來實現(xiàn),如Dreamweaver、Frontpage等。靜態(tài)網(wǎng)頁的內(nèi)容和外觀總是保持不變的,而且一般不需要與服務器發(fā)生交互動作。靜態(tài)網(wǎng)頁的后綴名一般為“.htm”、“.html”、“.shtml”、“.xml”等。如果把page.htm網(wǎng)頁放置在服務器上,用戶可以通過給定的網(wǎng)址來訪問該網(wǎng)頁。同樣,用戶也可以雙擊page.htm文件直接打開該網(wǎng)頁。通過這兩種方式來打開該網(wǎng)頁,用戶所看到的效果是相同的。實際上,在用戶訪問或打開該網(wǎng)頁
3、之前,該網(wǎng)頁的內(nèi)容已經(jīng)確定了,不管通過何種方式訪問。這正是靜態(tài)網(wǎng)頁的“靜態(tài)”兩個字的意義體現(xiàn)。1.1.2 動態(tài)網(wǎng)頁動態(tài)網(wǎng)頁是與靜態(tài)網(wǎng)頁相對應的。它的內(nèi)容可以根據(jù)指定的條件(如數(shù)據(jù)庫)動態(tài)變化。而且,動態(tài)網(wǎng)頁往往需要數(shù)據(jù)庫的支持,常常需要與服務器發(fā)生交互動作。目前來說,動態(tài)網(wǎng)頁的后綴名常見的有“.asp”、“.aspx”、“.jsp”、“.php”、“.perl”、“.cgi”等。特別地,訪問動態(tài)網(wǎng)頁的URL中往往包含標志性符號“?”。1.1.3 網(wǎng)站的工作原理網(wǎng)站是一種服務,是一種能夠在網(wǎng)絡中為客戶端提供的網(wǎng)絡應用的WWW服務,它由HTTP協(xié)議支持。其中,瀏覽網(wǎng)站的用戶往往被稱為“客戶端”,H
4、TTP協(xié)議是一個簡單的協(xié)議。當客戶端需要瀏覽網(wǎng)頁時,它就會向服務器發(fā)送一個請求。HTTP就會在客戶端和服務器之間建立一條TCP連接,并響應客戶端的請求,即把客戶端請求的信息發(fā)送給客戶端,并完成這次請求。下面按照不同類型的URL,分別介紹網(wǎng)站的工作原理。1標準URL的工作原理2只包含“域名目錄”的URL的工作原理3只包含“域名”的URL的工作原理4包含程序的URL的工作原理1.2 .NET Framework和ASP.NET本小節(jié)主要介紹.NET Framework和ASP.NET,以及使用ASP.NET開發(fā)網(wǎng)站所需要的準備技術,如HTML、CSS、JavaScript等。1.2.1 .NET
5、Framework概述.NET Framework是一個支持構建、部署和運行下一代應用程序和Web服務的完整Windows組件。它能夠提供效率極高的、基于標準的多語言(如C#、VB.NET、C+、J#等)環(huán)境,能夠?qū)F(xiàn)有的應用程序與下一代應用程序和服務集成,并能迅速部署和操作Internet規(guī)模的應用程序。.NET Framework主要包括兩個組件:公共語言運行庫(Common Language Runtime,簡稱為CLR)和.NET Framework類庫(Class Library)。1.2.2 ASP.NET概述ASP.NET是.NET Framework的一部分,它是一個統(tǒng)一的We
6、b開發(fā)模型,包括創(chuàng)建企業(yè)級Web應用程序的所必需的各種服務。特別地,開發(fā)人員還可以使用.NET Framework類庫提供的數(shù)以萬計的類,并且還可以選擇公共語言運行庫(CLR)兼容的任何語言(如C#、VB.NET、J#等)來編寫應用程序的代碼。ASP.NET主要包括以下7個方面的內(nèi)容。1ASP.NET頁和控件框架2狀態(tài)管理3配置網(wǎng)站4安全基礎結構5ASP.NET編譯器6ASP.NET調(diào)試機制7XML Web Services1.2.3 開發(fā)ASP.NET網(wǎng)站的準備技術如果要開發(fā)一個功能強大的ASP.NET網(wǎng)站,僅僅只有ASP.NET技術是不夠的。通常還需要其他技術支持,如HTML、腳本代碼(J
7、avaScript、VBScript等)、CSS(級聯(lián)樣式表)等,具體說明如下。1HTML2JavaScript3CSS1.3 搭建ASP.NET網(wǎng)站開發(fā)環(huán)境本小節(jié)介紹搭建開發(fā)ASP.NET網(wǎng)站的環(huán)境,包括安裝Microsoft Visual Studio 2008、配置Microsoft Visual Studio 2008、安裝IIS(Internet Information Server,網(wǎng)絡信息服務)、配置IIS等內(nèi)容。1.3.1 安裝Microsoft Visual Studio 2008下面介紹安裝Microsoft Visual Studio Team System 2008簡體
8、中文版的操作步驟。1.3.2 配置集成開發(fā)環(huán)境(IDE)由于Microsoft Visual Studio 2008集成開發(fā)環(huán)境(IDE)非常復雜,如果希望以后能夠更加方便地開發(fā)各種應用程序,則首先需要配置Microsoft Visual Studio 2008集成開發(fā)環(huán)境。1.3.3 熟悉集成開發(fā)環(huán)境(IDE)功能Microsoft Visual Studio 2008集成開發(fā)環(huán)境包括數(shù)個可以??俊⒏拥拿姘澹纭竟ぞ呦洹咳鐖D1.14所示、【服務器資源管理器】如圖1.15所示、【解決方案資源管理器】如圖1.16所示、【屬性】如圖1.17所示等。具體說明如下。1.3.4 安裝和配置IIS在Wi
9、ndows平臺上,IIS(Internet Information Server,網(wǎng)絡信息服務)是發(fā)布網(wǎng)站的最為常用的工具。通過IIS,可以把網(wǎng)站發(fā)布到Internet,使得網(wǎng)絡上的其他用戶可以訪問網(wǎng)站。1安裝IIS2配置IIS1.4 創(chuàng)建第一個ASP.NET網(wǎng)站本節(jié)介紹使用Microsoft Visual Studio 2008集成開發(fā)環(huán)境(IDE)創(chuàng)建第一個ASP.NET網(wǎng)站Sample_01的方法,以及開發(fā)Sample_01網(wǎng)站所涉及的各種基本技術,如設計Web頁面、編寫Web頁面的代碼隱藏文件、配置網(wǎng)站、運行網(wǎng)站、發(fā)布網(wǎng)站等。1.4.1 創(chuàng)建ASP.NET網(wǎng)站依次選擇【開始】|【所有程
10、序】|【Microsoft Visual Studio 2008】|【Microsoft Visual Studio 2008】命令,打開【起始頁-Microsoft Visual Studio】窗體。單擊【最近項目】面板中的【創(chuàng)建】下的【網(wǎng)站】鏈接,彈出【新建網(wǎng)站】對話框,如圖1.30所。1.4.2 解決方案資源管理器創(chuàng)建Sample_01網(wǎng)站成功之后,Microsoft Visual Studio 2008集成開發(fā)環(huán)境(IDE)將為該網(wǎng)站創(chuàng)建一個默認網(wǎng)頁,名稱為“Default.aspx”。可以在【解決方案資源管理器】面板中查看Sample_01網(wǎng)站包含的所有文件和資源,如圖1.31所示。
11、1.4.3 設計Default.aspx頁面在【解決方案資源管理器】面板中雙擊【Default.aspx】節(jié)點,打開Default.aspx頁面。Microsoft Visual Studio 2008集成開發(fā)環(huán)境(IDE)可以以3種視圖方式(【設計】、【拆分】和【源】)顯示Default.aspx頁面?!驹O計】視圖顯示Default.aspx頁面的設計界面。【源】視圖顯示Default.aspx頁面的HTML源代碼,如圖1.32所示?!静鸱帧恳晥D同時顯示Default.aspx頁面的設計界面和HTML源代碼。1.4.4 編寫Default.aspx頁面的代碼隱藏文件Default.aspx頁
12、面的代碼隱藏文件(由該頁面的“Page”指令的CodeFile屬性指定)為Default.aspx.cs文件。在【解決方案資源管理器】面板中雙擊【Default.aspx.cs】節(jié)點,打開Default.aspx.cs文件。1.4.5 配置Sample_01網(wǎng)站在創(chuàng)建Sample_01網(wǎng)站之后,系統(tǒng)將默認添加一個名稱為“web.config”的配置文件。該文件可以配置Sample_01網(wǎng)站的各種屬性,具體配置方法將在9.7小節(jié)中介紹。把Default.aspx頁面設置為Sample_01網(wǎng)站的起始頁面,并按【F5】按鈕,可以調(diào)試或運行該網(wǎng)站。在第一次運行該網(wǎng)站時,系統(tǒng)彈出【未啟用調(diào)試】對話框,
13、如圖1.35所示。該對話框提示用戶是否要在web.config配置文件中啟用調(diào)試。在此,筆者選擇【添加新的啟用了調(diào)試的web.config文件】選項。單擊【確定】按鈕即可調(diào)試或運行該網(wǎng)站。1.4.6 引入資源文件夾ASP.NET為網(wǎng)站提供了8個系統(tǒng)文件夾,每一個文件夾可以包含與網(wǎng)站相關的特定的文件或資源具體說明如表1.1所示。1.4.7 運行網(wǎng)站把Default.aspx頁面設置為Sample_01網(wǎng)站的起始頁面,并按【F5】按鈕或單擊 按鈕即可運行Sample_01網(wǎng)站。在IE瀏覽器中查看Default.aspx頁面,如圖1.38所示。一旦運行了Sample_01網(wǎng)站之后,系統(tǒng)將為該網(wǎng)站提供
14、了一個內(nèi)置服務器。該內(nèi)置服務器可以配置網(wǎng)站的根路徑、端口、虛擬路徑、物理路徑等信息。單擊任務欄中的【】圖標,可以打開Sample_01網(wǎng)站的內(nèi)置服務器窗口,如圖1.39所示。1.4.8 發(fā)布網(wǎng)站右擊【解決方案資源管理器】面板中的【D:.Sample_01】節(jié)點,并選擇【發(fā)布網(wǎng)站】命令,打開【發(fā)布網(wǎng)站】對話框,如圖1.40所示。在該對話框中,用戶可以配置被發(fā)布網(wǎng)站的發(fā)布位置、是否允許更新此編譯站點、是否使用固定命令名和單頁程序集、是否對編譯程序集啟用強命名等屬性。單擊【確定】按鈕可以將Sample_01網(wǎng)站發(fā)布到“D:Project2008Sample_01PrecompiledWebSampl
15、e_01”位置。1.5 小結本章主要介紹了搭建開發(fā)ASP.NET 3.5網(wǎng)站的環(huán)境,以及開發(fā)ASP.NET 3.5網(wǎng)站所需要的入門知識。其中,讀者要著重掌握使用Visual Studio 2008集成開發(fā)環(huán)境開發(fā)第一個ASP.NET 3.5網(wǎng)站的方法。只有這樣,才能進行后續(xù)的開發(fā)。下一章將要介紹C#語言的基礎知識。1.6 習題1在本章介紹的Sample_01網(wǎng)站之上,實現(xiàn)以下功能。(1)添加名稱為“MyPage.aspx”的新頁面到網(wǎng)站中。(2)添加Bin、App_Code和App_Themes系統(tǒng)文件夾到該網(wǎng)站中。(3)使用IIS為該網(wǎng)站創(chuàng)建名稱為“Sample_01”的虛擬目錄。(4)把M
16、yPage.aspx頁面設置為Sample_01網(wǎng)站的默認頁面。(5)在IE瀏覽器中查看MyPage.aspx頁面。第2章 C#語言基礎C#是一種簡單、現(xiàn)代、面向?qū)ο笄翌愋桶踩木幊陶Z言,已經(jīng)分別由ECMA International和ISO/IEC組織接受并確立了標準。C#不但是面向?qū)ο缶幊蹋褻#進一步提供了對面向組件編程的支持,可以通過屬性(property)、方法(method)和事件(event)來提供編程模型;并且還提供了關于組件的聲明性信息的屬性(attribute)和文檔。本章將講解C#語言的基礎知識,主要介紹以下知識點。數(shù)據(jù)類型,包括值類型和引用類型。變量、運算符、語句和注
17、釋。字符串處理方法。時間處理方法。2.1 數(shù)據(jù)類型C#語言的基本數(shù)據(jù)類型被劃分為值類型、引用類型和指針類型。值類型和引用類型屬于常用類型,而指針類型很少使用,因此,在此不做詳細介紹。值類型的變量直接存儲其數(shù)據(jù),引用類型的變量則存儲其數(shù)據(jù)的存儲地址,并通過存儲地址來訪問其數(shù)據(jù)。2.1.1 值類型值類型是指直接存儲其數(shù)據(jù)的數(shù)據(jù)類型,派生于System.ValueType類。它主要包括結構(struct)類型和枚舉(enum)類型。結構類型包括數(shù)值(Numeric)類型、布爾(bool)類型和自定義的結構類型。數(shù)值類型包括整數(shù)類型、浮點數(shù)類型和decimal。整數(shù)類型包括sbyte、byte、cha
18、r、short、ushort、int、uint、long和ulong。浮點數(shù)類型包括float和double。值類型的關系圖如圖2.1所示。1整數(shù)類型2浮點類型3decimal類型4布爾類型5結構類型6枚舉類型2.1.2 引用類型引用類型是指直接存儲其數(shù)據(jù)的存儲地址的數(shù)據(jù)類型,都直接或間接繼承于System.Object類。引用類型的變量總是分配在堆上。引用類型主要包括5個類型,即object類型、string類型、class類型、接口類型和委托(delegate)類型。1object類型2string類型3class類型4接口類型5委托類型2.2 變量、運算符和語句變量、運算符和語句是C#代
19、碼的重要組成部分,它們共同構建了C#語言編程代碼。變量表示存儲位置,運算符定義了各個變量之間的操作,語句是構造程序操作的基本元素。2.2.1 變量變量表示存儲位置。每一個變量都存在一個類型,該類型確定變量存儲的值。C#語言中的變量可以分為7種類型:局部變量、靜態(tài)變量、實例變量、數(shù)組元素、值參數(shù)、引用參數(shù)和輸出參數(shù)。1局部變量2靜態(tài)變量3值參數(shù)4引用參數(shù)5輸出參數(shù)2.2.2 運算符C#共定義了48種運算符,根據(jù)它們執(zhí)行的操作類型將它們劃分為9個類別,具體說明如表2.2所示。類型運算符說明基本類型x.y、f(x)、ax、x+、x-、new、typeof、checked、uncheckedtypeo
20、f獲取類型。一元類型+、-、!、+x、-x、(T)x(T)x類型轉(zhuǎn)換運算符。算術類型*、/、%、+、-移位類型關系和類型檢測類型、=、is、as相等類型=、!=邏輯類型&、|條件類型&、|、?:“?:”是一個三元運算符賦值類型=、+=、-=、*=、/=、%=、&=、|=、=、=2.2.3 語句程序的操作往往是使用語句(statement)來表示的。語句可以聲明局部變量或常量,調(diào)用方法,創(chuàng)建對象,給變量、屬性或字段賦值等操作。C#支持以下10種常用語句。2.2.4 條件語句條件語句是指需要根據(jù)指定的條件執(zhí)行預先指定語句的語句,它包括兩種語句:if語句和switch語句。其中,if語句用于二個條件
21、之間的選擇,switch語句可以用于多個條件之間的選擇。1if語句2switch語句 2.2.5 迭代語句迭代語句是指可以重復執(zhí)行嵌入的語句塊,它包括4種語句:for語句、foreach語句、while語句和do語句。1for語句2foreach語句3while語句4do語句2.2.6 注釋注釋是可以插入在代碼塊中,并可以標記或說明程序塊,但是注釋不會被執(zhí)行。C#語言可以使用單行注釋和多行注釋。2.3 字符串處理字符串是C#語言編程中最為常見的部分,它的類型為string。.NET Framework提供了兩種字符串:不變字符串(由String類表示)和可變字符串(由StringBuilder
22、),并為開發(fā)人員處理字符串提供了一系列的基本方法和操作。2.3.1 不變字符串和可變字符串.NET Framework把字符串分為不變字符串(由String類表示)和可變字符串(由StringBuilder)。其中,不變字符串一旦被創(chuàng)建,它就不能被修改,而可變字符串被創(chuàng)建之后,是可以被修改的,如可以進行插入、追加、替換、移除等操作。String類可以用來表示文本,即由Unicode字符組成的字符串。String對象是Char對象的有序集合。2.3.2 插入字符串String類提供了Insert()方法實現(xiàn)在指定位置插入字符串的功能。Insert()方法的最常見的語法形式如下。public st
23、ring Insert(int startIndex,string value);其中,startIndex參數(shù)為一個整數(shù),表示字符串插入的索引位置。value參數(shù)表示被插入的字符串。2.3.3 替換字符串String類提供了Replace()方法實現(xiàn)替換指定字符串的功能。Replace()方法的最常見的語法形式如下。public string Replace(string oldValue,string newValue);其中,oldValue參數(shù)指定被替換的字符串,newValue參數(shù)指定為替換的字符串。2.3.4 刪除字符串String類提供了Remove()方法實現(xiàn)從指定位置刪除字符
24、串的功能。Remove()方法的最常見的語法形式如下。public string Remove(int startIndex,int count);其中,startIndex參數(shù)指定被刪除字符的開始索引位置,count參數(shù)指定被刪除字符串的長度。2.3.5 分隔字符串String類提供了Split()方法可以將指定的字符串分隔為多個子字符串,并返回由子字符串組成的字符串數(shù)組。Split()方法的最常見的語法形式如下。public string Split(char separator, StringSplitOptions options);其中,separator參數(shù)指定分隔字符組成的字符數(shù)
25、組,options參數(shù)指定字符串分隔選項,它的值可以為StringSplitOptions.RemoveEmptyEntries(表示返回的數(shù)組不包括空字符串)和StringSplitOptions.None(表示返回的數(shù)組可以包括空字符串)。2.3.6 填充字符串String類提供了PadRight()和PadLeft()方法能夠在指定的字符串提供字符的方法。其中,PadRight()方法在字符串的右邊填充字符,PadLeft()方法在字符串的左邊填充字符。其中,PadLeft()方法最常見的語法形式如下。public string PadLeft(int totalWidth,char p
26、addingChar);其中,totalWidth參數(shù)指定填充字符之后的字符串的總長度,paddingChar參數(shù)指定填充的字符。2.3.7 連接字符串String類提供了Concat()方法能夠?qū)蓚€字符串連接為一個字符串,Join()方法可以將多個字符串連接為一個字符串。Concat()方法的最常見的語法形式如下。public string Concat(string str0,string str1);其中,str0和str1參數(shù)都指定被連接的字符串。2.3.8 獲取子字符串String類提供了SubString()方法能夠獲取指定位置處的子字符串。SubString()方法的最常見的語
27、法形式如下。public string SubString(int startIndex,int length);其中,startIndex參數(shù)指定子字符串在模式字符串中的開始位置,length參數(shù)指定子字符串的最大長度。2.3.9 追加字符串StringBuilder類提供了Append()和AppendLine()方法能夠在指定位置追加字符串。其中,AppendLine()方法在追加指定字符串之后,然后在字符串的末尾默認追加一個換行符。Append()方法最常見的語法形式如下。public string Append(string value);其中,value參數(shù)指定被追加的字符串。2.
28、4 時間處理時間也是C#語言編程中最為常見的部分,它的類型為DateTime。.NET Framework為處理時間提供了多個屬性和方法,并為開發(fā)人員處理時間提供了一系列的基本方法和操作。2.4.1 DateTime結構DateTime是一個結構,且為值類型,表示時間上的一刻,通常以日期和當天的時間表示。DateTime值類型表示值的范圍為公元0001年1月1日午夜12:00:00公元9999年12月31日晚上11:59:59之間的日期和時間。DateTime表示的時間字符串由年、月、日、時、分、秒,以及分隔符組成。最常用的一種格式如下所示。yyyy-MM-dd hh:mm:ss2.4.2 D
29、ateTime結構的字段和屬性DateTime結構包含2個字段和16個屬性。其中,這2個字段為MaxValue和MinValue,它們分別表示DateTime的最大可能值和最小可能值。16個屬性可以獲取時間的各種值,如年份、月份、日期、小時、分鐘、秒等。2.4.3 格式化時間DateTime結構提供了多個以“To”開頭的方法可以將時間轉(zhuǎn)換為不同格式的字符串。這些方法的具體說明如表2.5所示。2.4.4 時間間隔TimeSpanTimeSpan結構表示一個時間間隔或持續(xù)時間,可以按照正負天數(shù)、小時數(shù)、分鐘數(shù)、秒數(shù)以及秒的小數(shù)部分進行度量。用于度量持續(xù)時間的最大時間單位是天。TimeSpan值可以
30、表示為“-d.hh:mm:ss.ff”格式的字符串。其中,減號是可選的,它指示負時間間隔;d分量表示天;hh表示小時(24小時制);mm表示分鐘;ss表示秒,ff為秒的小數(shù)部分。如“12.10:30:50”表示12天、10小時、30分鐘和50秒。2.4.5 計算時間的差DateTime結構提供了Subtract()方法,該方法可以計算兩個時間的差值,也可以計算時間和時間間隔的差值。2.4.6 追加時間DateTime結構提供多個以“Add”開頭的方法可以在指定的時間上追加一個時間差值,從而得到一個新的時間。這些方法的具體說明如表2.6所示。方法說明AddYears()將指定的年份數(shù)加到指定的時
31、間上。AddMonths()將指定的月份數(shù)加到指定的時間上。AddDays()將指定的天數(shù)加到指定的時間上。AddHours()將指定的小時數(shù)加到指定的時間上。AddMinutes()將指定的分鐘數(shù)加到指定的時間上。AddSeconds()將指定的秒數(shù)加到指定的時間上。AddMilliseconds()將指定的毫秒數(shù)加到指定的時間上。AddTicks()將指定的刻度數(shù)加到指定的時間上。Add()將指定的TimeSpan的值加到指定的時間上。2.5 小結本章主要介紹了C#語言的基礎知識,如數(shù)據(jù)類型、變量、運算符、語句、字符串處理和時間處理等。其中,讀者要著重掌握數(shù)據(jù)類型、變量、運算符、語句等基礎
32、知識,為后續(xù)編寫C#程序代碼奠定基礎。下一章將要介紹C#語言中的面向?qū)ο缶幊碳夹g。2.6 習題在Visual Studio 2008集成開發(fā)環(huán)境中創(chuàng)建名稱為“CSharpWeb”的ASP.NET網(wǎng)站,并實現(xiàn)以下功能。(1)將名稱為“Default.aspx”的頁面添加到該網(wǎng)站中。(2)創(chuàng)建一個整型變量vint和一個字符串變量vstring,將vint變量轉(zhuǎn)換為字符串,將vstring變量轉(zhuǎn)換為一個整數(shù)。(3)創(chuàng)建兩個字符串:str1和str2,并演示字符串的常用操作,如插入字符串、替換字符串、刪除字符串、分隔字符串、填充字符串、連接字符串、獲取子字符串、追加字符串等。(4)獲取系統(tǒng)的當前時間,
33、并顯示在網(wǎng)頁上。第3章 C#面向?qū)ο缶幊藽#是一種面向?qū)ο蟮木幊陶Z言,它通過字段(Field)、屬性(Property)、方法(Method)、事件(Event)等機制提供編程模型。本章節(jié)主要介紹以下知識點。類。結構。屬性和方法。派生和重載。委托和事件。委托回調(diào)。3.1 類、對象和實例化類是C#中最基礎的類型,它是一種數(shù)據(jù)結構,將字段(如狀態(tài))和操作(如方法、函數(shù)等)組合在一個單元中。在C#中,聲明類需要使用class關鍵字。聲明類的語法如下所示。public | protected | internal | protected internal | private class ClasseN
34、ame/類的成員public、protected、internal、protected internal和private用來設置類的訪問性。若省略了該特性,則默認為private。ClassName表示類的名稱。1類成員的種類2類的訪問性控制3.2 結構像類一樣,結構(struct)是一種能夠包含數(shù)據(jù)成員和函數(shù)成員的數(shù)據(jù)結構,它具有以下6個特點。結構是值類型,而類是引用類型。所有的結構都繼承于System.ValueType,而不能從另外一個結構或類繼承。實例化結構時,可以不使用new運算符。結構可以聲明構造函數(shù),但是該函數(shù)必須攜帶參數(shù)。結構也可以實現(xiàn)接口。因為結構也可以用作可為null的類型
35、,因此,也可以將null賦值給結構。3.3 創(chuàng)建多邊形類Polygon【實例3-2】介紹創(chuàng)建多邊形類Polygon的方法。該類包含屬性(Points)、索引器、方法(Polygon()和Print(Bitmap bm))、委托(MyDelegate(int i))、事件(printPointEvent)等成員。其中,委托和事件將在3.5小節(jié)中進行介紹。3.3.1 定義Polygon類【示例3-11】定義了名稱為“Polygon”的類,并省略了該類的成員的代碼。Polygon類將用來表示一個多邊形。3.3.2 定義屬性【示例3-12】在Polygon類中定義了一個名稱為“Points”的屬性。該
36、屬性用來保存多邊形的點的坐標。Points屬性包含了get和set方法,因此,開發(fā)人員可以獲取或設置該屬性的值。3.3.3 定義索引器索引器又稱為含參屬性,它提供索引的方式來訪問類或結構,即使用與訪問數(shù)組的方式來訪問類或結構。【示例3-13】在Polygon類中定義了一個索引器,以提供了按索引方式來訪問Polygon類的points字段。該索引器使用index參數(shù)(類型為整數(shù),即用于訪問points數(shù)組的索引值)指定被操作的points數(shù)組的成員。3.3.4 定義函數(shù)成員【示例3-14】在Polygon類中定義了一個構造函數(shù),它不包含任何代碼?!臼纠?-15】在Polygon類中定義了一個名稱
37、為“DrawPolygon()”的函數(shù)。【示例3-16】在Polygon類中定義了一個名稱為“Print(Bitmap bm)”的函數(shù)。該函數(shù)包含bm參數(shù)(類型為Bitmap),它表示被輸出到網(wǎng)頁上的Bitmap類型的圖像。Print(Bitmap bm)函數(shù)將bm參數(shù)指定的Bitmap類型的圖像的輸出到網(wǎng)頁上。3.4 派生類和重載方法和C+語言一樣,C#語言中的類也支持繼承(inheritance)和多態(tài)性(polymorphism)。但是,C#中的類不能同時繼承于多個類。不妨設A和B類,且B類繼承于A類。那么,B類稱為A類的派生類,A類稱為B類的父類。另外,派生類可以使用override關
38、鍵字重新定義其父類中的屬性、方法、索引器等。其中,使用override關鍵字重新定義其父類中的方法,稱為重載方法。3.4.1 創(chuàng)建派生類Circularity、Triangle和Square【示例3-17】定義了名稱為“Circularity”的類,用來表示圓。該類從Polygon類派生,并繼承了Polygon類的所有屬性和方法。另外,Circularity類還定義了一個構造函數(shù)Circularity()?!臼纠?-18】定義了名稱為“Triangle”的類,用來表示三角形。該類從Polygon類派生,并繼承了Polygon類的所有屬性和方法。另外,Triangle類還定義了一個構造函數(shù)Tri
39、angle()?!臼纠?-19】定義了名稱為“Square”的類,用來表示四邊形。該類從Polygon類派生,并繼承了Polygon類的所有屬性和方法。另外,Square類還定義了一個構造函數(shù)Square()。3.4.2 重載方法在3.3.4小節(jié)中,Polygon類定義了一個名稱為“DrawPolygon()”的虛方法(使用virtual關鍵字修飾)。因此,Polygon類的派生類可以定義其自己的DrawPolygon()方法?!臼纠?-20】在Circularity類中也定義了DrawPolygon()方法,并使用override關鍵字修飾。即表示該方法重寫了Circularity類的父類(
40、Polygon類)中的DrawPolygon()方法。該方法的具體實現(xiàn)代碼已經(jīng)省略。3.5 委托和事件委托(delegate)也是一種類型,它表示對具有特定參數(shù)列表和返回類型的方法的引用。通過委托,開發(fā)人員能夠?qū)⒎椒ㄗ鳛閷嶓w賦值給變量和作為參數(shù)傳遞。委托類似于C+語言中的函數(shù)指針。事件(event)是一種特殊的委托,它是一種使對象或類能夠提供通知或消息的成員??蛻舳丝梢酝ㄟ^提供事件處理程序為相應的事件添加可執(zhí)行代碼。3.5.1 聲明事件的參數(shù)類【示例3-21】聲明了名稱為“PointEventArgs”的類,該類繼承于EventArgs類(為包含事件數(shù)據(jù)的類的基類)。PointEventArg
41、s類聲明了一個名稱為“Points”屬性,用來表示多邊形點坐標的集合,它的類型為CustomPoint。3.5.2 聲明委托和事件委托(delegate)是一種數(shù)據(jù)結構,它可以用來引用靜態(tài)方法、類的實例,以及類的實例的方法。事件(event)是一種使對象或類能夠提供通知或消息的成員??蛻舳丝梢酝ㄟ^提供事件處理程序為相應的事件添加可執(zhí)行代碼。事件是一種特殊的委托,它包括兩個參數(shù):指定事件源的“對象源”參數(shù)和封裝與事件相關的信息的“e”參數(shù)。其中,e參數(shù)的類型可以為EventArgs類或其派生類。3.5.3 引發(fā)事件一旦創(chuàng)建事件之后,如果要該事件執(zhí)行指定的操作,則需要某種引發(fā)該事件的機制。例如,定
42、義一個方法或函數(shù)來引發(fā)事件。3.6 繪制圓【實例3-2】介紹了在網(wǎng)頁上繪制一個圓的方法。3.7 繪制三角形【實例3-3】介紹了在網(wǎng)頁上繪制一個三角形的方法。3.8 繪制四邊形【實例3-4】介紹了在網(wǎng)頁上繪制一個四邊形的方法。3.9 使用委托進行回調(diào)【實例3-5】介紹了使用委托進行回調(diào)指定事件的方法。3.10 小結本章主要介紹了C#面向?qū)ο缶幊痰幕A知識:類和結構,以及它們的數(shù)據(jù)成員和函數(shù)成員。其中,讀者要著重掌握創(chuàng)建類和結構的方法,以及類的派生、繼承和重載等技術。下一章將要介紹C#語言中的數(shù)組和集合的編程技術。3.11 習題1、在Visual Studio 2008集成開發(fā)環(huán)境中創(chuàng)建名稱為“C
43、lassWeb”的ASP.NET網(wǎng)站,并實現(xiàn)以下功能。(1)將名稱為“Default.aspx”的頁面添加到該網(wǎng)站中。(2)創(chuàng)建3個類:A、B和C。其中,B和C類都繼承與A類。(3)在A類定義一個名稱為“Print()”的方法,該方法在網(wǎng)頁上顯示A類的名稱。(4)在B類定義一個名稱為“Print()”的方法,該方法在網(wǎng)頁上顯示B類的名稱。(5)在C類定義一個名稱為“Print()”的方法,該方法在網(wǎng)頁上顯示C類的名稱。(6)在Default.aspx頁面中分別創(chuàng)建A、B和C類的實例,并調(diào)用Print()方法顯示類的名稱。第4章 數(shù)組和集合編程.NET Framework提供了一種被稱為“集合”
44、的對象,使用這些對象可以處理或操作一組具有相同特性的元素。數(shù)組也是一種集合對象,它可以將多個類型相同的元素組合為一個整體,從而通過數(shù)組統(tǒng)一訪問或操作這些元素。本章將講解使用數(shù)組和集合對象進行編程的方法,主要介紹以下知識點。遍歷數(shù)組。多維數(shù)組和交錯數(shù)組。動態(tài)數(shù)組。System.Array類。枚舉。哈希表、堆棧和隊列。4.1 數(shù)組在C#程序開發(fā)中,數(shù)組是最常用的數(shù)據(jù)結構之一。它是相同數(shù)據(jù)類型對象的集合,該集合的長度(即數(shù)組的長度)可以為0或大于0的整數(shù)。4.1.1 數(shù)組概述數(shù)組是有序數(shù)據(jù)的集合。數(shù)組中的每一個元素都屬于同一個數(shù)據(jù)類型。用一個統(tǒng)一的數(shù)組名和下標來惟一確定數(shù)組中的元素。例如,一個班有2
45、0名學生,可以用s1,s2,s3,s20表示20個學生的成績。s為數(shù)組名,下標表示學生的序號。s10(整數(shù)10為下標)表示第10個學生的成績。數(shù)組的元素的數(shù)據(jù)類型被稱為元素類型。數(shù)組的元素可以為任何類型,甚至可以為數(shù)組。1數(shù)組的維度數(shù)2聲明數(shù)組3實例化數(shù)組4初始化數(shù)組4.1.2 遍歷數(shù)組遍歷數(shù)組是指依次訪問數(shù)組中的每一個元素的操作。訪問數(shù)組中的元素最常用的方法是使用下標。根據(jù)是否使用下標,遍歷數(shù)組方式分為兩種。第一種,使用下標遍歷,如for、while、dowhile等語句。第二種,不使用下標遍歷,如foreach語句。下面依次講解這兩種方式。1使用for語句遍歷數(shù)組2使用foreach語句遍
46、歷數(shù)組4.1.3 多維數(shù)組多維數(shù)組是指維度數(shù)大于1的數(shù)組,如二維數(shù)組、三維數(shù)組等。聲明二維數(shù)組的語法如下所示。type, arrayName;其中,type表示數(shù)組元素的類型,如int、double、string、object等;中括號()中間存在一個逗號(,)表示該數(shù)組為一個二維數(shù)組;arrayName表示數(shù)組的名稱。4.1.4 交錯數(shù)組交錯數(shù)組又稱為“數(shù)組的數(shù)組”,它的元素也為數(shù)組。聲明二維交錯數(shù)組的語法如下所示。type arrayName;其中,type表示數(shù)組元素的類型,如int、double、string、object等;type關鍵字之后包含兩個中括號()表示該數(shù)組為一個二維交錯
47、數(shù)組;arrayName表示數(shù)組的名稱。4.1.5 動態(tài)數(shù)組動態(tài)數(shù)組(ArrayList)又稱為可變數(shù)組,數(shù)組的長度可以動態(tài)修改。動態(tài)數(shù)組在保存元素時,都保存元素的引用,而不是元素的具體值。因此,動態(tài)數(shù)組的元素類型可以是任何類型,而且各個元素的類型也可以不相同。4.1.6 System.Array類在4.1.1小節(jié)中已經(jīng)提及了System.Array類,所有的數(shù)組都直接或間接派生于System.Array類。因此,System.Array類為數(shù)組提供了最基本的屬性和方法。如獲取數(shù)組長度的Length屬性、設置數(shù)組指定元素的值的SetValue()方法等。System.Array類的常用屬性如表
48、4.3所示屬性描述Length數(shù)組的長度,即數(shù)組所有維度中元素的總數(shù)。該值為32位整數(shù)。LongLength數(shù)組的長度,即數(shù)組所有維度中元素的總數(shù)。該值為64位整數(shù)。Rank數(shù)組的秩,即數(shù)組的維度數(shù)。IsFixedSize表示數(shù)組的大小是否固定。IsReadOnly表示數(shù)組是否為只讀。4.2 抽簽程序【實例4-1】實現(xiàn)了抽簽功能,即隨機抽取給定的簽號,并把抽簽結果顯示在網(wǎng)頁中。4.3 枚舉和集合.NET Framework提供了大量的集合對象,如哈希表、堆棧、隊列、字典等。使用這些集合對象可以處理或操作一組具有相同特性的元素。枚舉是一種非常特殊的值類型,它可以用來表示一組命名的常量。下面將介紹
49、枚舉和集合對象的知識點和使用方法。4.3.1 枚舉枚舉類型(Enum)是一種獨特的值類型,它用于聲明一組命名的常量。所謂“枚舉”就是將變量的值逐一列舉出來,變量的值只限于列舉出來的值的范圍之內(nèi)。聲明枚舉類型使用enum關鍵字。4.3.2 哈希表哈希表(HashTable)表示“鍵/值”對的集合,這些“鍵/值”對根據(jù)鍵的哈希代碼進行組織。它的每一個元素都是一個存儲在類型為DictionaryEntry的“鍵/值”對,并且元素的鍵值不能為空。哈希表也是一個類。創(chuàng)建一個哈希表對象的方法和創(chuàng)建一個類的對象的方法相似,只要使用“new”操作符即可。4.3.3 堆棧堆棧(Stack)是限定在表尾進行插入和
50、刪除操作的線性表,它用來表示對象的簡單的后進先出的集合。堆棧也是一個類。創(chuàng)建一個堆棧對象的方法和創(chuàng)建一個類的對象的方法相似,只要使用“new”操作符即可。4.3.4 隊列隊列(Stack)是限定在表尾進行插入、在表頭進行刪除操作的線性表,它用來表示對象的簡單的喜先進先出的集合。隊列也是一個類。創(chuàng)建一個隊列對象的方法和創(chuàng)建一個類的對象的方法相似,只要使用“new”操作符即可。4.4 緩存數(shù)據(jù)模塊【實例4-2】使用哈希表實現(xiàn)了緩存數(shù)據(jù)功能,并創(chuàng)建了用于緩存數(shù)據(jù)的MyCache類。4.5 小結本章主要介紹了數(shù)組和集合的編程方法和技術,如遍歷數(shù)組、多維數(shù)組、交錯數(shù)組、動態(tài)數(shù)組等,以及分別使用數(shù)組和哈希
51、表實現(xiàn)抽簽程序和數(shù)據(jù)緩存模塊的方法。其中,讀者要著重掌握創(chuàng)建、遍歷數(shù)組的方法,以及動態(tài)數(shù)組的使用方法。下一章將要介紹C#語言的高級技術。4.6 習題1、在Visual Studio 2008集成開發(fā)環(huán)境中創(chuàng)建名稱為“ArrayWeb”的ASP.NET網(wǎng)站,并實現(xiàn)以下功能。(1)將名稱為“Default.aspx”的頁面添加到該網(wǎng)站中。(2)創(chuàng)建一個名稱為“salary”的2維數(shù)組,兩維的長度分別為12和31。該數(shù)組用來存放1年中每一天的日薪水。(3)使用for或foreach語句初始化salary數(shù)組。(4)使用for或foreach語句遍歷salary數(shù)組,并顯示每一個元素的值。(5)創(chuàng)建一
52、個哈希表,并將salary數(shù)組中的元素存放到哈希表中。第5章 C#高級技術C#高級技術為開發(fā)高效的、功能強大的應用程序提供了技術支持。C#高級技術主要包括C# 2.0中的高級技術和C# 3.0的高級技術,如泛型列表、可空類型、匿名方法、迭代器、隱型局部變量、對象和集合初始化器、匿名類型、隱型數(shù)組、Lambda表達式、查詢表達式等。本章將講解使用C#高級技術來編程的方法,主要介紹以下知識點。創(chuàng)建和使用泛型列表。可空類型和匿名方法。迭代器。創(chuàng)建隱型變量和隱型數(shù)組。創(chuàng)建匿名對象。Lambda表達式。查詢表達式。反射。異常處理。創(chuàng)建和使用命名空間5.1 C# 2.0高級技術C# 2.0在C# 1.0基
53、礎之上引入了新的語言機制,如泛型列表、可空類型、匿名方法、迭代器等。本小節(jié)主要介紹C# 2.0的高級技術。5.1.1 創(chuàng)建和使用泛型列表泛型(Generic)提供了一種新的、創(chuàng)建數(shù)據(jù)類型的機制。使用泛型,開發(fā)人員可以把類型作為參數(shù)。聲明泛型的語法如下。Variable var;Variable為基礎類型,T為元素類型,var為變量的名稱。聲明“Stack”的實例的類型由創(chuàng)建時所指定的類型確定。該實例將存儲該類型的數(shù)據(jù)而不進行數(shù)據(jù)類型轉(zhuǎn)換。其中,類型形參T只起占位符的作用,直到在使用時為其指定了實際類型。5.1.2 使用可空類型處理數(shù)據(jù)可空(null)類型是一個組合了基礎類型(如int等)的值和
54、布爾空值指示符的結構。它的實例具有兩個只讀屬性:Value和HasValue。Value屬性為該實例的值(如果存在),它的類型是實例的繼承類型。HasValue屬性的類型為bool類型,如果該實例的存在值,則HasValue屬性的值為true,否則為false。聲明可空類型變量的語法如下。System.Nullable variable或者T? variableT是可空類型變量的基礎類型,variable為變量名稱。5.1.3 創(chuàng)建匿名方法匿名方法(Anonymous Method)是指在創(chuàng)建方法時,隱藏方法的名稱的一種技術。通過這種技術,開發(fā)人員可以允許與委托關聯(lián)的代碼以“內(nèi)聯(lián)”方式寫入使用
55、委托的位置,從而方便地將代碼直接“綁定”到委托實例。除此之外,匿名方法還能夠?qū)Π暮瘮?shù)成員的局部狀態(tài)進行共享訪問。5.1.4 迭代器迭代器(Iterator)是一個產(chǎn)生有序值序列的語句塊,它可以使用yield關鍵字對數(shù)組或集合類執(zhí)行迭代操作。一般情況下,迭代器包含以下兩種迭代語句。yield return語句,產(chǎn)生迭代器的下一個值。yield break語句,指示迭代完成。創(chuàng)建迭代器最常用的方法是對IEnumerable接口實現(xiàn)GetEnumerator()方法。5.2 C# 3.0高級技術C# 3.0在C# 1.0和C# 2.0的基礎之上引入了新的語言機制,如隱型局部變量、對象和集合初始
56、化器、匿名類型、隱型數(shù)組、Lambda表達式、查詢表達式等。本小節(jié)主要介紹C# 3.0的新技術。5.2.1 使用var創(chuàng)建隱型局部變量通常情況下,在聲明一個變量時,總是要指定該變量的數(shù)據(jù)類型。如果不指定變量的數(shù)據(jù)類型,那么將會產(chǎn)生編譯錯誤。然而,在C# 3.0語言中,當聲明一個變量時,可以使用“var”關鍵字來指定變量的類型,而不明確該變量的類型。該變量實際的數(shù)據(jù)類型將在初始化該變量的值的表達式中推斷出來。5.2.2 對象和集合初始化器對象和集合初始化器分別用于初始化對象和集合。對象初始化器可以不調(diào)用類的構造函數(shù)就能夠創(chuàng)建該類的實例,并設置該實例的屬性的值。集合初始化器由一系列元素組成,并封閉
57、于“”和“”標記內(nèi),并將這些元素直接初始化集合的元素。1對象初始化器2集合初始化器5.2.3 創(chuàng)建匿名類型的對象匿名類型提供一種新的技術機制,通過這種技術機制可以使用“var”關鍵字、“new”操作符和匿名對象初始化器創(chuàng)建一個新的對象。這個新創(chuàng)建的對象就是一個匿名類型的對象。5.2.4 創(chuàng)建隱型數(shù)組隱型數(shù)組和匿名類型的對象比較相似。隱型數(shù)組使用“var”關鍵字和數(shù)組初始化器創(chuàng)建,且數(shù)組初始化器中的所有元素的數(shù)據(jù)類型都必須能夠隱式轉(zhuǎn)換為同一個數(shù)據(jù)類型(不能為null)的元素。即數(shù)組初始化器必須存在一種數(shù)據(jù)類型(不能為null),使得該數(shù)組初始化器中的所有元素都能夠隱式轉(zhuǎn)換為該類型的元素。5.2.
58、5 構建Lambda表達式Lambda表達式是一個匿名函數(shù),它可以包含表達式和語句,并且可用于創(chuàng)建委托或表達式目錄樹類型。Lambda表達式由輸入?yún)?shù)(如果存在)、Lambda運算符(=)和表達式或語句塊構成。Lambda表達式的基本語法如下。(input parameters) = expressioninput parameters表示輸入?yún)?shù),“=”為Lambda運算符,expression表示表達式。1Lambda表達式的輸入?yún)?shù)2Lambda表達式的表達式或語句塊5.2.6 查詢表達式查詢表達式是一種用查詢語法表示的表達式,由一組用類似于SQL或XQuery的聲明性語法編寫的子句組成
59、。每一個子句可以包含一個或多個C#表達式,而這些表達式本身又可能是查詢表達式或包含查詢表達式。查詢表達式和其他表達式一樣,可以用在C#表達式有效的任何上下文中。查詢表達式包含以下8個基本子句。from子句,指定查詢表達式的數(shù)據(jù)源和范圍變量。select子句,指定篩選元素的邏輯條件。一般由邏輯運算符組成。where子句,指定查詢結果的表現(xiàn)形式。group子句,對查詢結果進行分組。orderby子句,對查詢結果進行排序。join子句,用來連接多個查詢操作的數(shù)據(jù)源。let子句,可以用來引入用于存儲子表達式查詢結果的范圍變量。into子句,提供一個臨時標識符,使用該標識可以允許對join、group或
60、select子句結果的引用。5.3 其他高級技術本小節(jié)主要介紹除了5.1小節(jié)和5.2小節(jié)介紹之外的C#語言高級技術,如反射機制、異常處理、創(chuàng)建和引用命名空間等。5.3.1 使用反射獲取程序集信息反射(Reflection)為.NET Framework提供一種技術機制,通過這種技術可以獲取程序集中的模塊、類型、成員等信息。程序開發(fā)人員可以使用反射動態(tài)地創(chuàng)建類型的實例,并將類型綁定到現(xiàn)有對象,或從現(xiàn)有對象中獲取類型。然后,可以調(diào)用類型的方法或訪問其字段和屬性。5.3.2 異常處理異常(Exception)處理是一種結構化的、統(tǒng)一的、類型安全的處理機制。異??梢杂糜谔幚硐到y(tǒng)級和應用程序級的錯誤狀態(tài)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度活動板房租賃與消防安全承包合同
- 二零二五年度影視公司股份轉(zhuǎn)讓合同范本
- 二零二五年度個人債權轉(zhuǎn)讓協(xié)議書:個人債權轉(zhuǎn)讓及后續(xù)風險管理合同
- 2025年度退租公寓家具損壞賠償合同
- 二零二五年度總公司與分公司關于資源共享與業(yè)務拓展的合作協(xié)議書
- 2025年鉑金馬賽克項目可行性研究報告
- 2025年大孔丙烯系弱酸樹脂項目可行性研究報告
- 2025至2030年高速列車座椅項目投資價值分析報告
- 2025至2030年噴膠巖棉項目投資價值分析報告
- 2025年激光脫毛儀項目可行性研究報告
- 2025年安徽衛(wèi)生健康職業(yè)學院單招職業(yè)技能測試題庫及參考答案1套
- 《澳大利亞》導學案
- 2025四川省安全員A證考試題庫附答案
- 2025年高考語文備考訓練之社會現(xiàn)象:“數(shù)字囤積癥”
- 2025年湖南高速鐵路職業(yè)技術學院單招職業(yè)技能測試題庫帶答案
- 蘇教版三年級科學下冊第一單元第3課《植物開花了》課件
- 休閑海島開發(fā)策劃方案
- DB36-T 2097-2024 固定資產(chǎn)投資項目節(jié)能報告編制規(guī)范
- 健康與保健課件
- 《運營管理 第7版》課件全套 馬風才 第01-15章 運營管理概論- 互聯(lián)網(wǎng)運營
- 課件-DeepSeek從入門到精通
評論
0/150
提交評論