第1章C#代碼編寫基礎(chǔ)_第1頁
第1章C#代碼編寫基礎(chǔ)_第2頁
第1章C#代碼編寫基礎(chǔ)_第3頁
第1章C#代碼編寫基礎(chǔ)_第4頁
第1章C#代碼編寫基礎(chǔ)_第5頁
已閱讀5頁,還剩63頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、網(wǎng)絡(luò)編程基礎(chǔ)網(wǎng)絡(luò)編程基礎(chǔ)教材:教材:C#程序設(shè)計(jì)教程程序設(shè)計(jì)教程任課教師:段趙磊任課教師:段趙磊上課時(shí)間上課時(shí)間:1、2、3、7、8、9、10、11、15、16、17周周周二第二大節(jié)周二第二大節(jié)1、3、7、8、9、10、11、15、16周周周四第五大節(jié)周四第五大節(jié) 單雙周都上單雙周都上電教樓電教樓404實(shí)驗(yàn)時(shí)間:實(shí)驗(yàn)時(shí)間:第第1、2、3、9、10、11、12、13、15、16周周周四中午周四中午12:10-13:50 網(wǎng)絡(luò)運(yùn)維網(wǎng)絡(luò)運(yùn)維13-1、2第第1、2、3、7、8、9、10、11、16、17周周周四第四大節(jié)周四第四大節(jié) 16:10-17:50 網(wǎng)絡(luò)工程網(wǎng)絡(luò)工程13-1實(shí)驗(yàn)樓實(shí)驗(yàn)樓302第第

2、1章章 C#代碼編寫基礎(chǔ)代碼編寫基礎(chǔ)5Ch1 C#代碼編寫基礎(chǔ)代碼編寫基礎(chǔ)1.1 C#語言和語言和VS2012開發(fā)環(huán)境開發(fā)環(huán)境1.2 C#項(xiàng)目的組織項(xiàng)目的組織1.3 控制臺應(yīng)用程序控制臺應(yīng)用程序1.4 Windows窗體應(yīng)用程序窗體應(yīng)用程序1.5 WPF和和Silverlight應(yīng)用程序應(yīng)用程序1.6 獨(dú)立應(yīng)用程序和瀏覽器運(yùn)行的應(yīng)用程序獨(dú)立應(yīng)用程序和瀏覽器運(yùn)行的應(yīng)用程序1.1 C#語言和語言和VS2012開發(fā)環(huán)境開發(fā)環(huán)境l1.1.1 C#語言和語言和.NET框架框架l1.1.2 VS2012開發(fā)環(huán)境開發(fā)環(huán)境71.1.1 C#語言和語言和.NET框架框架lC#(讀作(讀作“C sharp”)是一

3、種完全面向?qū)ο蟮幕┦且环N完全面向?qū)ο蟮幕谟?NET框架的高級程序設(shè)計(jì)語言??蚣艿母呒壋绦蛟O(shè)計(jì)語言。C#的開發(fā)背景的開發(fā)背景 C#是從是從C和和C+演變而來的,并且結(jié)合了演變而來的,并且結(jié)合了C/C+的強(qiáng)大功能、的強(qiáng)大功能、Java的面向?qū)ο筇匦院偷拿嫦驅(qū)ο筇匦院蚔isual Basic的易用性,從而成為一種簡單的的易用性,從而成為一種簡單的類型安全、面向?qū)ο蟮木幊陶Z言,也是類型安全、面向?qū)ο蟮木幊陶Z言,也是.NET公共語言運(yùn)行環(huán)境的內(nèi)置語言。公共語言運(yùn)行環(huán)境的內(nèi)置語言。C#代碼可以代碼可以從公共語言運(yùn)行庫的服務(wù)中獲益。從公共語言運(yùn)行庫的服務(wù)中獲益。 C#是唯一為是唯一為.NET Frame

4、work設(shè)計(jì)的語言,設(shè)計(jì)的語言,是用于是用于.NET開發(fā)的最好選擇。開發(fā)的最好選擇。C#語言的特點(diǎn)語言的特點(diǎn)C#語言的特點(diǎn)語言的特點(diǎn).NET框架為框架為C#提供了一個(gè)強(qiáng)大的、易用的、邏輯提供了一個(gè)強(qiáng)大的、易用的、邏輯結(jié)構(gòu)一致的程序設(shè)計(jì)環(huán)境。結(jié)構(gòu)一致的程序設(shè)計(jì)環(huán)境。C#具有如下的特點(diǎn):具有如下的特點(diǎn):專門為快速編寫在專門為快速編寫在.NET框架上運(yùn)行的各種應(yīng)用程序而框架上運(yùn)行的各種應(yīng)用程序而設(shè)計(jì)。設(shè)計(jì)。語法簡潔語法簡潔精心的面向?qū)ο笤O(shè)計(jì)精心的面向?qū)ο笤O(shè)計(jì)與與Web的緊密結(jié)合的緊密結(jié)合可靠的安全性與錯(cuò)誤處理可靠的安全性與錯(cuò)誤處理可靠的版本控制技術(shù)可靠的版本控制技術(shù)靈活性和兼容性。靈活性和兼容性。1

5、.1.1 C#語言和語言和.NET框架框架lMicrosoft.NET框架框架定義定義uMicrosoft.NETMicrosoft.NET框架是生成、運(yùn)行框架是生成、運(yùn)行.NET.NET應(yīng)用程序和應(yīng)用程序和Web ServiceWeb Service的組件庫。的組件庫。包含包含u公共語言運(yùn)行庫公共語言運(yùn)行庫u類庫類庫類庫為開發(fā)和運(yùn)行類庫為開發(fā)和運(yùn)行.NET.NET應(yīng)用程序提供了各種支持應(yīng)用程序提供了各種支持類庫是與公共語言運(yùn)行庫緊密集成的可重用的類的集合類庫是與公共語言運(yùn)行庫緊密集成的可重用的類的集合。1.1.1 C#語言和語言和.NET框架框架lMicrosoft.NET框架框架特點(diǎn):一種

6、框架多種語言特點(diǎn):一種框架多種語言u支持支持C#C#語言、語言、VB.NETVB.NET語言、語言、C+C+和和C+.NETC+.NET語言、語言、F#F#語言等高級語言語言等高級語言注意注意u用基于用基于.NET.NET框架開發(fā)的應(yīng)用程序,不論使用的框架開發(fā)的應(yīng)用程序,不論使用的是哪種高級語言,均必須在安裝了是哪種高級語言,均必須在安裝了.NET.NET框架的計(jì)框架的計(jì)算機(jī)上才能運(yùn)行。這種架構(gòu)與算機(jī)上才能運(yùn)行。這種架構(gòu)與JavaJava應(yīng)用程序必須應(yīng)用程序必須由由JavaJava虛擬機(jī)支持相似。虛擬機(jī)支持相似。什么是什么是.NET .NET框架(框架(.NET Framework) 是由微軟

7、開發(fā),是由微軟開發(fā),一個(gè)致力于快速應(yīng)用開發(fā)、平臺無關(guān)性和網(wǎng)絡(luò)透明化一個(gè)致力于快速應(yīng)用開發(fā)、平臺無關(guān)性和網(wǎng)絡(luò)透明化的軟件開發(fā)平臺。的軟件開發(fā)平臺。.NET包含許多有助于互聯(lián)網(wǎng)和內(nèi)部包含許多有助于互聯(lián)網(wǎng)和內(nèi)部網(wǎng)應(yīng)用迅捷開發(fā)的技術(shù)。網(wǎng)應(yīng)用迅捷開發(fā)的技術(shù)。.NET Framework可以創(chuàng)建可以創(chuàng)建Windows應(yīng)用程序、應(yīng)用程序、Web應(yīng)用程序、應(yīng)用程序、Web服務(wù)和其他服務(wù)和其他各種類型的應(yīng)用程序。各種類型的應(yīng)用程序。 .NET框架是一個(gè)多語言組件開發(fā)和執(zhí)行環(huán)境,它框架是一個(gè)多語言組件開發(fā)和執(zhí)行環(huán)境,它提供了一個(gè)跨語言的統(tǒng)一編程環(huán)境。提供了一個(gè)跨語言的統(tǒng)一編程環(huán)境。.NET框架的目的框架的目的是便

8、于開發(fā)人員更容易地建立是便于開發(fā)人員更容易地建立Web應(yīng)用程序和應(yīng)用程序和Web服服務(wù),使得務(wù),使得Internet上的各應(yīng)用程序之間,可以使用上的各應(yīng)用程序之間,可以使用Web服務(wù)進(jìn)行溝通。服務(wù)進(jìn)行溝通。 .NET平臺介紹平臺介紹 .NET平臺介紹平臺介紹1.1.1 C#語言和語言和.NET框架框架lMicrosoft.NET框架框架-公共語言運(yùn)行庫公共語言運(yùn)行庫公共語言運(yùn)行庫公共語言運(yùn)行庫u是是.NET.NET框架的基礎(chǔ),為多種編程語言提供統(tǒng)一框架的基礎(chǔ),為多種編程語言提供統(tǒng)一的運(yùn)行環(huán)境。的運(yùn)行環(huán)境。1.1.1 C#語言和語言和.NET框架框架lMicrosoft.NET框架框架-公共語言

9、運(yùn)行庫公共語言運(yùn)行庫中間語言中間語言ILu使用使用.NET.NET框架提供的編譯器可直接將源程序編譯為框架提供的編譯器可直接將源程序編譯為.EXE.EXE或者或者.DLL.DLL文件,此時(shí)編譯出來的程序代碼并不文件,此時(shí)編譯出來的程序代碼并不是是CPUCPU能直接執(zhí)行的機(jī)器代碼,而是一種中間語言能直接執(zhí)行的機(jī)器代碼,而是一種中間語言ILIL代碼代碼( Microsoft Intermediate ( Microsoft Intermediate Language,MSIL)Language,MSIL)u使用中間語言代碼的優(yōu)點(diǎn)使用中間語言代碼的優(yōu)點(diǎn)可以實(shí)現(xiàn)平臺無關(guān)性,即與特定的CPU無關(guān);只要能

10、將某種語言編譯為IL代碼,就可以實(shí)現(xiàn)這些語言之間的交互操作。1.1.1 C#語言和語言和.NET框架框架l即時(shí)編譯即時(shí)編譯執(zhí)行時(shí)執(zhí)行時(shí)CLR會(huì)將需要的會(huì)將需要的IL代碼裝入內(nèi)存,通過代碼裝入內(nèi)存,通過JIT編譯器(編譯器(Just-In-Time)將其編譯成所用平臺的)將其編譯成所用平臺的CPU可直接執(zhí)行的可直接執(zhí)行的機(jī)器代碼。機(jī)器代碼。即時(shí)編譯并不是一次把整個(gè)應(yīng)用程序全部編譯完,而是只即時(shí)編譯并不是一次把整個(gè)應(yīng)用程序全部編譯完,而是只編譯它調(diào)用的那部分代碼所在的模塊。編譯它調(diào)用的那部分代碼所在的模塊。l為什么要采用即時(shí)編譯為什么要采用即時(shí)編譯JIT編譯器可以有效地提高系統(tǒng)的性能。編譯器可以有

11、效地提高系統(tǒng)的性能??煽衫矛F(xiàn)有利用現(xiàn)有CPU和和GPU硬件提供的功能即時(shí)生成優(yōu)化后的硬件提供的功能即時(shí)生成優(yōu)化后的可執(zhí)行代碼??蓤?zhí)行代碼。1.1.2 VS2012開發(fā)環(huán)境開發(fā)環(huán)境lVS2012開發(fā)環(huán)境開發(fā)環(huán)境1安裝安裝VS2012u速成版(速成版(Express EditionExpress Edition)-免費(fèi)免費(fèi)u專業(yè)版(專業(yè)版(Professional EditionProfessional Edition)u旗艦版(旗艦版(Ultimate EditionUltimate Edition)-本書調(diào)試用的本書調(diào)試用的環(huán)境環(huán)境2安裝安裝VS2012 SP33配置配置VS2012開發(fā)環(huán)境

12、的界面風(fēng)格(可選)開發(fā)環(huán)境的界面風(fēng)格(可選)u深色深色u淺色淺色1.1.2 VS2012開發(fā)環(huán)境開發(fā)環(huán)境1.2 C#項(xiàng)目的組織項(xiàng)目的組織l1.2.1 命名空間命名空間l1.2.2 using關(guān)鍵字關(guān)鍵字l1.2.3 Main方法方法l1.2.4 代碼注釋代碼注釋l1.2.5 通過斷點(diǎn)調(diào)試通過斷點(diǎn)調(diào)試C#程序程序l1.2.6 C#代碼編寫命名規(guī)范代碼編寫命名規(guī)范1.2 C#項(xiàng)目的組織項(xiàng)目的組織lC#源文件的擴(kuò)展名為源文件的擴(kuò)展名為.cs,如,如Welcome.cs。l一個(gè)一個(gè)C#源文件中一般只包含一個(gè)類源文件中一般只包含一個(gè)類【建議這樣做建議這樣做】,但也可以包含多個(gè)類,文件名和類名可以相同,但

13、也可以包含多個(gè)類,文件名和類名可以相同【建建議相同議相同】,也可以不同,也可以不同【包含多個(gè)類時(shí)一般不和類名包含多個(gè)類時(shí)一般不和類名相同相同】。l調(diào)試環(huán)境下調(diào)試環(huán)境下:項(xiàng)目編譯后生成的文件默認(rèn)保存在項(xiàng)目項(xiàng)目編譯后生成的文件默認(rèn)保存在項(xiàng)目的的binDebug文件夾下。文件夾下。1.2.1 命名空間命名空間l命名空間命名空間是對類的一種劃分,類似于目錄和文件的劃分形式是對類的一種劃分,類似于目錄和文件的劃分形式 。命令空間是一種邏輯劃分,而非物理上的存儲分類。命令空間是一種邏輯劃分,而非物理上的存儲分類。命名空間命名空間命名空間命名空間命名空間命名空間命名空間命名空間命名空間命名空間命名空間命名空

14、間命名空間命名空間命名空間命名空間類類類類類類1.2.1 命名空間命名空間l靜態(tài)方法調(diào)用靜態(tài)方法調(diào)用命名空間命名空間.命名空間命名空間.命名空間命名空間.類名類名.靜態(tài)方法名(參數(shù),靜態(tài)方法名(參數(shù),);u例如:例如:System.Console.WritleLineSystem.Console.WritleLine(”Hello World!”);Hello World!”);l實(shí)例方法調(diào)用實(shí)例方法調(diào)用實(shí)例化:實(shí)例化:u命名空間命名空間命名空間命名空間. .類名類名 = new = new 類名稱(參數(shù)類名稱(參數(shù),) 方法調(diào)用:方法調(diào)用:u實(shí)例名實(shí)例名. .方法名(參數(shù)方法名(參數(shù))例如:

15、例如:uSystem.Text.StringBuilder b = System.Text.StringBuilder b = newnew StringBuilder(); StringBuilder(); ub.Append(“abcd”);b.Append(“abcd”); 1.2.2 using關(guān)鍵字關(guān)鍵字lusing關(guān)鍵字關(guān)鍵字指定引用的命名空間,例如:指定引用的命名空間,例如:uusing System.Windows.Forms;using System.Windows.Forms;簡化命名空間的層次表達(dá)形式,例如簡化命名空間的層次表達(dá)形式,例如: uusing WinForm=

16、System.Windows.Form;using WinForm=System.Windows.Form;作為語句,定義一個(gè)范圍。作為語句,定義一個(gè)范圍。u程序執(zhí)行到程序執(zhí)行到“”時(shí),就會(huì)自動(dòng)釋放時(shí),就會(huì)自動(dòng)釋放usingusing后小括號中創(chuàng)建的對象后小括號中創(chuàng)建的對象u例如:例如:using(TextWriter w= File.CreateText(test.txt) w.WriteLine(Line one); w.WriteLine(Line two); w.WriteLine(Line three); 1.2.3 Main方法方法lMain方法要求方法要求應(yīng)用程序入口方法名規(guī)定為

17、應(yīng)用程序入口方法名規(guī)定為Main。必須聲明為必須聲明為public static返回值只能是返回值只能是void或者或者int??梢苑旁谌魏我粋€(gè)類中。可以放在任何一個(gè)類中。1.2.4 代碼注釋代碼注釋l常規(guī)注釋方式常規(guī)注釋方式單行注釋:以單行注釋:以“/”符號開始,任何位于符號開始,任何位于“/”符號后的本符號后的本行文字都視為注釋行文字都視為注釋塊注釋:以塊注釋:以“/*”開始,開始,“*/”結(jié)束。任何介于這對符號之結(jié)束。任何介于這對符號之間的文字塊都視為注釋。間的文字塊都視為注釋。lXML注釋方式注釋方式“/”符號是一種符號是一種XML注釋方式注釋方式在用戶自定義的類型如類、接口、枚舉等或

18、者在其成員上在用戶自定義的類型如類、接口、枚舉等或者在其成員上方,或者命名空間的聲明上方連續(xù)鍵入方,或者命名空間的聲明上方連續(xù)鍵入3個(gè)斜杠字符個(gè)斜杠字符可以在鍵入方法名和參數(shù)的過程中看到用可以在鍵入方法名和參數(shù)的過程中看到用XML注釋的智能注釋的智能提示。提示。1.2.5 通過斷點(diǎn)調(diào)試通過斷點(diǎn)調(diào)試C#程序程序l斷點(diǎn)調(diào)試是編程人員必備素質(zhì)!斷點(diǎn)調(diào)試是編程人員必備素質(zhì)!利用斷點(diǎn)查找程序的邏輯錯(cuò)誤,是常用的手段之一利用斷點(diǎn)查找程序的邏輯錯(cuò)誤,是常用的手段之一1設(shè)置和取消斷點(diǎn)設(shè)置和取消斷點(diǎn)u單擊某代碼行左邊的灰色區(qū)域。單擊設(shè)置,再單擊某代碼行左邊的灰色區(qū)域。單擊設(shè)置,再次單擊取消設(shè)置。次單擊取消設(shè)置。

19、u鼠標(biāo)右擊某代碼行,選擇【斷點(diǎn)】鼠標(biāo)右擊某代碼行,選擇【斷點(diǎn)】【插入斷【插入斷點(diǎn)】或者【刪除斷點(diǎn)】。點(diǎn)】或者【刪除斷點(diǎn)】。 u單擊某代碼行,直接按單擊某代碼行,直接按鍵進(jìn)行設(shè)置或取消鍵進(jìn)行設(shè)置或取消設(shè)置。設(shè)置。2利用斷點(diǎn)調(diào)試程序利用斷點(diǎn)調(diào)試程序u按按執(zhí)行到斷點(diǎn),觀察后再按執(zhí)行到斷點(diǎn),觀察后再按執(zhí)行到下執(zhí)行到下一斷點(diǎn)一斷點(diǎn)+鍵終止調(diào)試。鍵終止調(diào)試。 1.2.6 C#代碼編寫命名規(guī)范代碼編寫命名規(guī)范l類名、方法名和屬性名全部使用類名、方法名和屬性名全部使用Pascal命名法,即所有單詞連命名法,即所有單詞連寫,每個(gè)單詞的第一個(gè)字母大寫,其他字母小寫。例如寫,每個(gè)單詞的第一個(gè)字母大寫,其他字母小寫。

20、例如HelloWorld、GetData等。等。l變量名、一般對象名、控件對象名以及方法的參數(shù)名全部使用變量名、一般對象名、控件對象名以及方法的參數(shù)名全部使用Camel命名法,即所有單詞連寫,但是第一個(gè)單詞全部小寫,命名法,即所有單詞連寫,但是第一個(gè)單詞全部小寫,其他每個(gè)單詞的第一個(gè)字母大寫。例如:其他每個(gè)單詞的第一個(gè)字母大寫。例如:userName、userAge等。等。l如果是私有字段,為了和具有相同名字的屬性名區(qū)分,私有的如果是私有字段,為了和具有相同名字的屬性名區(qū)分,私有的字段名也可以用下劃線(字段名也可以用下劃線(“_”)開頭,例如)開頭,例如屬性名為屬性名為Age,私有字段名可以為

21、,私有字段名可以為age或者或者_(dá)Age。1.3 控制臺應(yīng)用程序控制臺應(yīng)用程序l1.3.1 控制臺應(yīng)用程序的輸入與輸出控制臺應(yīng)用程序的輸入與輸出l1.3.2 在控制臺應(yīng)用程序中輸出格式化數(shù)據(jù)在控制臺應(yīng)用程序中輸出格式化數(shù)據(jù)1.3.1 控制臺應(yīng)用程序的輸入與輸出控制臺應(yīng)用程序的輸入與輸出l控制臺輸出控制臺輸出Console.Write ();u把各種類型的數(shù)據(jù)或?qū)ο筠D(zhuǎn)換成字符串寫入標(biāo)準(zhǔn)輸出流把各種類型的數(shù)據(jù)或?qū)ο筠D(zhuǎn)換成字符串寫入標(biāo)準(zhǔn)輸出流Console.WriteLine();u與與WriteWrite的區(qū)別的區(qū)別:自動(dòng):自動(dòng)輸出回車輸出回車、換行符(換行符(“rn”);rn”);例如例如int

22、 age = 18; int age = 18; string s = abc;string s = abc;Console.Write(age);Console.Write(age);Console.Write(s);Console.Write(s);Console.WriteLine(age);Console.WriteLine(age);Console.WriteLine(s);Console.WriteLine(s);1.3.1 控制臺應(yīng)用程序的輸入與輸出控制臺應(yīng)用程序的輸入與輸出l控制臺輸入控制臺輸入Console.ReadKey();u標(biāo)準(zhǔn)輸入流讀取用戶按下的字符或功能鍵。標(biāo)準(zhǔn)輸入

23、流讀取用戶按下的字符或功能鍵。u例如:例如:ConsoleKeyInfo c=Console.ReadKey()ConsoleKeyInfo c=Console.ReadKey();Console.ReadLine();u從標(biāo)準(zhǔn)輸入流讀取一行字符。例如:從標(biāo)準(zhǔn)輸入流讀取一行字符。例如: string s = Console.ReadLine();string s = Console.ReadLine();1.3.1 控制臺應(yīng)用程序的輸入與輸出控制臺應(yīng)用程序的輸入與輸出l快速鍵入快速鍵入C#代碼代碼方法方法1:連續(xù)按兩次:連續(xù)按兩次鍵鍵方法方法2:在要插入代碼段的位置處,用鼠標(biāo)右擊選:在要插入代

24、碼段的位置處,用鼠標(biāo)右擊選擇擇“外側(cè)代碼外側(cè)代碼”的辦法插入代碼段。的辦法插入代碼段。例如:例如:u鍵入鍵入“for”“for”三個(gè)字母后,連續(xù)按兩次三個(gè)字母后,連續(xù)按兩次鍵鍵,觀察系統(tǒng)自動(dòng)插入的代碼段。,觀察系統(tǒng)自動(dòng)插入的代碼段。1.3.2 在控制臺應(yīng)用程序中輸出格式化數(shù)據(jù)在控制臺應(yīng)用程序中輸出格式化數(shù)據(jù)l在在Console.Write和和Console.WriteLine方法中,可直接定義方法中,可直接定義數(shù)據(jù)轉(zhuǎn)換為字符串后的輸出格式數(shù)據(jù)轉(zhuǎn)換為字符串后的輸出格式Console.WriteLine(格式化表示格式化表示, 參數(shù)序列)參數(shù)序列);Console.Write(格式化表示格式化表示

25、, 參數(shù)序列)參數(shù)序列);例如:例如:int x=10, y=20, z=30;int x=10, y=20, z=30;/輸出輸出10+20+30=6010+20+30=60Console.WriteLine(0+1+2=3, x, y, z, x+y+z); Console.WriteLine(0+1+2=3, x, y, z, x+y+z); /輸出輸出60=20+30+1060=20+30+10Console.WriteLine(3=1+2+0, x, y, z, x+y+z); Console.WriteLine(3=1+2+0, x, y, z, x+y+z); 1.3.2 在控制

26、臺應(yīng)用程序中輸出格式化數(shù)據(jù)在控制臺應(yīng)用程序中輸出格式化數(shù)據(jù)N , M :格式碼格式碼 l格式化輸出形式格式化輸出形式N 從零開始的整數(shù),表示第幾個(gè)參數(shù)。從零開始的整數(shù),表示第幾個(gè)參數(shù)。M 可選參數(shù),整數(shù),表示最小長度??蛇x參數(shù),整數(shù),表示最小長度。u若參數(shù)若參數(shù)N N的長度小于的長度小于M M,就用空格填充;,就用空格填充;u如果如果M M為負(fù),則左對齊;如果為負(fù),則左對齊;如果M M為正,則右對齊;為正,則右對齊;格式碼格式碼可選參數(shù),格式化代碼樣式。可選參數(shù),格式化代碼樣式。u格式碼:有默認(rèn)位數(shù),可用整數(shù)指定位數(shù);格式碼:有默認(rèn)位數(shù),可用整數(shù)指定位數(shù);CC貨幣形式、貨幣形式、DD十進(jìn)制形式

27、、十進(jìn)制形式、FF固定精度形式、固定精度形式、EE指數(shù)指數(shù)形式、形式、NN用逗號分隔千位數(shù)字、用逗號分隔千位數(shù)字、PP百分比形式百分比形式、XX十六十六進(jìn)制形式進(jìn)制形式占位符:占位符:0強(qiáng)制占位符、強(qiáng)制占位符、#有效占位符有效占位符1.3.2 在控制臺應(yīng)用程序中輸出格式化數(shù)據(jù)在控制臺應(yīng)用程序中輸出格式化數(shù)據(jù)l利用利用string.Format方法格式化字符串方法格式化字符串先用先用String.Format方法拼接字符串,再用方法拼接字符串,再用WriteLine方法方法輸出;輸出;既可以在控制臺應(yīng)用程序中使用,也可以在其他應(yīng)用程序既可以在控制臺應(yīng)用程序中使用,也可以在其他應(yīng)用程序中(中(Wi

28、nForm、WPF等)使用。等)使用。例如:例如:int i = 123;int i = 123;/d6/d6表示不夠表示不夠6 6位左邊補(bǔ)零位左邊補(bǔ)零string s = string.Format(0:d6, i);string s = string.Format(0:d6, i);Console.WriteLine(s); Console.WriteLine(s); 1.3.2 在控制臺應(yīng)用程序中輸出格式化數(shù)據(jù)在控制臺應(yīng)用程序中輸出格式化數(shù)據(jù)l3利用利用ToString方法格式化字符串方法格式化字符串如果是一個(gè)變量,使用如果是一個(gè)變量,使用ToString方法更簡單。方法更簡單。Cons

29、ole、WinForm、WPF、Silverlight、ASP.NET等等應(yīng)應(yīng)用程序都可以利用用程序都可以利用string.Format方法或者方法或者ToString方法定方法定義數(shù)據(jù)的格式。義數(shù)據(jù)的格式。例如:例如:int n1 = 12;int n1 = 12;string s1 = n1.ToString(X4); /Xstring s1 = n1.ToString(X4); /X格式表示用十六進(jìn)格式表示用十六進(jìn)制輸出。結(jié)果為:制輸出。結(jié)果為:000C000Cstring s2 = n1.ToString(d5); /string s2 = n1.ToString(d5); /結(jié)果:結(jié)

30、果:00012000124控制臺應(yīng)用程序示例控制臺應(yīng)用程序示例l【例例1-1】 演示控制臺應(yīng)用程序的基本設(shè)計(jì)方法,以及如何在演示控制臺應(yīng)用程序的基本設(shè)計(jì)方法,以及如何在一個(gè)解決方案中包含多個(gè)應(yīng)用程序項(xiàng)目。一個(gè)解決方案中包含多個(gè)應(yīng)用程序項(xiàng)目。 Console.Write(請輸入請輸入x和和y(例如(例如12,15),然后按回車鍵:然后按回車鍵:); string s = Console.ReadLine(); string a = s.Split(,); int x = int.Parse(a0); int y = int.Parse(a1); int z = ClassLibraryExamp

31、le.MyClass.Multiplication(x, y); Console.WriteLine(x*y=0, z); Console.WriteLine(請按任意鍵結(jié)束程序。請按任意鍵結(jié)束程序。); Console.ReadKey();1.4 Windows窗體應(yīng)用程序窗體應(yīng)用程序l1.4.1 Windows窗體應(yīng)用程序的特點(diǎn)窗體應(yīng)用程序的特點(diǎn)l1.4.2 Windows窗體應(yīng)用程序的啟動(dòng)和退出窗體應(yīng)用程序的啟動(dòng)和退出l1.4.3 窗體的創(chuàng)建、顯示、隱藏和關(guān)閉窗體的創(chuàng)建、顯示、隱藏和關(guān)閉l1.4.4 消息框(消息框(MessageBox)l1.4.5 利用利用WinForm控件實(shí)現(xiàn)輸入和

32、輸出控件實(shí)現(xiàn)輸入和輸出l1.4.6 錯(cuò)誤提示(錯(cuò)誤提示(ErrorProvider)1.4.1 Windows窗體應(yīng)用程序的特點(diǎn)窗體應(yīng)用程序的特點(diǎn)lWindows窗體應(yīng)用程序窗體應(yīng)用程序是在是在Windows XP操作系統(tǒng)上開發(fā)客戶端應(yīng)用程序的主要開操作系統(tǒng)上開發(fā)客戶端應(yīng)用程序的主要開發(fā)模型,這種開發(fā)模型利用發(fā)模型,這種開發(fā)模型利用GDI+和操作系統(tǒng)交互。和操作系統(tǒng)交互。lWindows窗體應(yīng)用程序現(xiàn)狀窗體應(yīng)用程序現(xiàn)狀WinForm已有多年的歷史,其技術(shù)高度成熟,如果開發(fā)不包含動(dòng)已有多年的歷史,其技術(shù)高度成熟,如果開發(fā)不包含動(dòng)畫、多媒體畫、多媒體(音頻視頻)(音頻視頻)以及三維圖形等高級功能的

33、程序,使用以及三維圖形等高級功能的程序,使用WinForm應(yīng)用程序可獲得比較高的開發(fā)效率和運(yùn)行性能。應(yīng)用程序可獲得比較高的開發(fā)效率和運(yùn)行性能。1.4.1 Windows窗體應(yīng)用程序的特點(diǎn)窗體應(yīng)用程序的特點(diǎn)lGDI(Graphics Device Interface,圖形設(shè)備接口),圖形設(shè)備接口)是是Windows 2000操作系統(tǒng)內(nèi)核提供的功能,提供二維圖形和文操作系統(tǒng)內(nèi)核提供的功能,提供二維圖形和文本處理功能以及功能有限的圖像處理功能本處理功能以及功能有限的圖像處理功能沒有三維圖形和音頻視頻等多媒體處理功能。沒有三維圖形和音頻視頻等多媒體處理功能。隨著隨著Windows 2000操作系統(tǒng)退出

34、歷史舞臺,使用操作系統(tǒng)退出歷史舞臺,使用GDI技術(shù)的開技術(shù)的開發(fā)人員也越來越少。發(fā)人員也越來越少。lGDI+是是Windows XP操作系統(tǒng)內(nèi)核提供的功能,在操作系統(tǒng)內(nèi)核提供的功能,在GDI的基礎(chǔ)上增加的基礎(chǔ)上增加了一套基于了一套基于.NET框架的編程接口,從而讓我們能使用框架的編程接口,從而讓我們能使用C#快速實(shí)快速實(shí)現(xiàn)窗體界面繪制和繪圖功能。現(xiàn)窗體界面繪制和繪圖功能。GDI+沒有沒有GPU硬件加速功能,所有圖形圖像處理功能全部都是硬件加速功能,所有圖形圖像處理功能全部都是靠軟件來實(shí)現(xiàn)??寇浖韺?shí)現(xiàn)。1.4.2 Windows窗體應(yīng)用程序的啟動(dòng)和退出窗體應(yīng)用程序的啟動(dòng)和退出l窗體應(yīng)用程序的啟

35、動(dòng)和停止窗體應(yīng)用程序的啟動(dòng)和停止使用使用Application類提供的靜態(tài)方法來啟動(dòng)、停止應(yīng)用程序類提供的靜態(tài)方法來啟動(dòng)、停止應(yīng)用程序Run方法:方法:u用于在當(dāng)前線程上啟動(dòng)應(yīng)用程序消息循環(huán),并顯示窗體。用于在當(dāng)前線程上啟動(dòng)應(yīng)用程序消息循環(huán),并顯示窗體。Exit方法:方法:u用于停止消息循環(huán)。用于停止消息循環(huán)。觀察觀察Program.cs中的中的Main方法。方法。1.4.3 窗體的創(chuàng)建、顯示、隱藏和關(guān)閉窗體的創(chuàng)建、顯示、隱藏和關(guān)閉l如何在代碼中打開一個(gè)新窗體如何在代碼中打開一個(gè)新窗體Form2 fm = new Form2(); fm.Show(); 或者或者Form2 fm = new F

36、orm2(); fm.ShowDialog();觀察觀察Show 與與ShowDialog之間的區(qū)別之間的區(qū)別l如何在代碼中如何在代碼中隱藏隱藏一個(gè)窗體一個(gè)窗體“無模式無模式”窗口窗口:調(diào)用調(diào)用Hide方法隱藏。方法隱藏。this.Hide();this.Hide();隱藏其他窗體可以調(diào)用實(shí)例名的隱藏其他窗體可以調(diào)用實(shí)例名的Hide方法,例如:方法,例如:umyForm.Hide();myForm.Hide();窗體隱藏后,其實(shí)例仍在,可重新調(diào)用窗體隱藏后,其實(shí)例仍在,可重新調(diào)用Show方法再次顯示方法再次顯示1.4.3 窗體的創(chuàng)建、顯示、隱藏和關(guān)閉窗體的創(chuàng)建、顯示、隱藏和關(guān)閉l如何在代碼中關(guān)

37、閉一個(gè)窗體如何在代碼中關(guān)閉一個(gè)窗體用法用法1:fm.Close();u關(guān)閉其他窗體關(guān)閉其他窗體用法用法2:this.Close();u關(guān)閉當(dāng)前打開的窗體關(guān)閉當(dāng)前打開的窗體用法用法3:Application.Exit();u不論當(dāng)前窗體是哪個(gè)窗體,只要調(diào)用不論當(dāng)前窗體是哪個(gè)窗體,只要調(diào)用ApplicationApplication的的ExitExit方法,方法,整個(gè)應(yīng)用程序就會(huì)立即退出整個(gè)應(yīng)用程序就會(huì)立即退出1.4.3 窗體的創(chuàng)建、顯示、隱藏和關(guān)閉窗體的創(chuàng)建、顯示、隱藏和關(guān)閉l4注冊事件注冊事件事件是響應(yīng)用戶操作的一種技術(shù)。事件是響應(yīng)用戶操作的一種技術(shù)。雙擊雙擊窗體設(shè)計(jì)界面窗體設(shè)計(jì)界面上的某上的

38、某控件,默認(rèn)會(huì)自動(dòng)注冊最常用的控件,默認(rèn)會(huì)自動(dòng)注冊最常用的事件事件(例如按鈕的最常用事件是例如按鈕的最常用事件是Click)。)。選擇某個(gè)控件,單擊選擇某個(gè)控件,單擊【屬性屬性】窗口中的窗口中的“雷電雷電”符號,符號,可可看到該控件對應(yīng)的各種事件,雙擊指定的事件,可注冊對應(yīng)看到該控件對應(yīng)的各種事件,雙擊指定的事件,可注冊對應(yīng)的事件的事件。在代碼中通過在代碼中通過“+=”注冊指定的事件,通過注冊指定的事件,通過“-=”注銷指注銷指定的事件。當(dāng)熟悉代碼后,這種辦法是最靈活也是方便的辦定的事件。當(dāng)熟悉代碼后,這種辦法是最靈活也是方便的辦法。法。1.4.3 窗體的創(chuàng)建、顯示、隱藏和關(guān)閉窗體的創(chuàng)建、顯示

39、、隱藏和關(guān)閉l【例例1-2】 演示演示W(wǎng)indows窗體應(yīng)用程序的基本用法。窗體應(yīng)用程序的基本用法。1.4.4 消息框(消息框(MessageBox)l消息框消息框顯示消息對話框顯示消息對話框可通過檢查可通過檢查Show方法返回的值來確定用戶單擊了哪個(gè)按鈕方法返回的值來確定用戶單擊了哪個(gè)按鈕l注意注意雖然用雖然用Show方法顯示消息框,但由于它本身是模式窗口,方法顯示消息框,但由于它本身是模式窗口,所以在消息框關(guān)閉前,不會(huì)執(zhí)行它后面的代碼。所以在消息框關(guān)閉前,不會(huì)執(zhí)行它后面的代碼。1.4.4 消息框(消息框(MessageBox)lMessageBox的的Show方法提供了多種重載形式,常用有

40、:方法提供了多種重載形式,常用有:public static DialogResult Show(string text)public static DialogResult Show(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon)例如:例如:uMessageBox.Show (MessageBox.Show (輸入的內(nèi)容不正確輸入的內(nèi)容不正確););u消息框關(guān)閉后,返回值是消息框關(guān)閉后,返回值是DialogResultDialogResult枚舉值之一。枚舉值有:枚舉值之一。枚舉值有:N

41、oneNone(消息框未返回值)、(消息框未返回值)、OKOK、CancelCancel、YesYes和和NoNo1.4.4 消息框(消息框(MessageBox)lText:在消息框中顯示的文本。在消息框中顯示的文本。lcaption:在消息框的標(biāo)題欄中顯示的文本。在消息框的標(biāo)題欄中顯示的文本。lbuttons:MessageBoxButtons枚舉值之一,指定在消息框中顯示哪些按鈕。枚枚舉值之一,指定在消息框中顯示哪些按鈕。枚舉值有舉值有OK、OKCancel、YesNoCancel和和YesNo。licon:MessageBoxIcon枚舉值之一,指定在消息框中顯示哪個(gè)圖標(biāo)。枚舉值枚舉值

42、之一,指定在消息框中顯示哪個(gè)圖標(biāo)。枚舉值有有None(不顯示圖標(biāo))、(不顯示圖標(biāo))、Hand(手形)、(手形)、Question(問號)(問號).1.4.4 消息框(消息框(MessageBox)l【例例1-3】 演示消息框的基本用法。演示消息框的基本用法。1.4.5 利用利用WinForm控件實(shí)現(xiàn)輸入和輸出控件實(shí)現(xiàn)輸入和輸出l1分組(分組(Panel、GroupBox)Panel控件和控件和GroupBox控件均用于對控件進(jìn)行分組控件均用于對控件進(jìn)行分組不同之處:不同之處:Panel控件不能顯示標(biāo)題但可以有滾動(dòng)條,而控件不能顯示標(biāo)題但可以有滾動(dòng)條,而GroupBox控件可顯示標(biāo)題但不能顯示滾

43、動(dòng)條。控件可顯示標(biāo)題但不能顯示滾動(dòng)條。l2標(biāo)簽(標(biāo)簽(Label)和文本框()和文本框(TextBox)Label控件用于提供控件或窗體的描述性文字控件用于提供控件或窗體的描述性文字uTextText屬性屬性TextBox控件允許用戶在應(yīng)用程序中輸入或編輯文本控件允許用戶在應(yīng)用程序中輸入或編輯文本uReadOnlyReadOnly屬性、屬性、NameName屬性、屬性、PasswordCharPasswordChar、TextText1.4.5 利用利用WinForm控件實(shí)現(xiàn)輸入和輸出控件實(shí)現(xiàn)輸入和輸出l【例例1-4】 演示演示TextBox控件的基本用法。控件的基本用法。1.4.5 利用利用

44、WinForm控件實(shí)現(xiàn)輸入和輸出控件實(shí)現(xiàn)輸入和輸出l3復(fù)選框(復(fù)選框(CheckBox)和單選按鈕()和單選按鈕(RadioButton)CheckBoxu選擇一個(gè)或者多個(gè)選項(xiàng),每個(gè)選項(xiàng)一般用選中和非選中選擇一個(gè)或者多個(gè)選項(xiàng),每個(gè)選項(xiàng)一般用選中和非選中兩種狀態(tài)表示。兩種狀態(tài)表示。RadioButtonu一組一組RadioButtonRadioButton按鈕中只能有一個(gè)處于選中狀態(tài)。按鈕中只能有一個(gè)處于選中狀態(tài)。u一旦某一項(xiàng)被選中,同組中其他一旦某一項(xiàng)被選中,同組中其他RadioButtonRadioButton按鈕的選中按鈕的選中狀態(tài)狀態(tài)將將自動(dòng)清除。自動(dòng)清除。1.4.5 利用利用WinFo

45、rm控件實(shí)現(xiàn)輸入和輸出控件實(shí)現(xiàn)輸入和輸出l【例例1-5】 演示演示CheckBox控件和控件和RadioButton控件的基本用控件的基本用法。法。1.4.5 利用利用WinForm控件實(shí)現(xiàn)輸入和輸出控件實(shí)現(xiàn)輸入和輸出l列表(列表(ListBox)和下拉列表()和下拉列表(ComboBox)ListBox(列表框)控件和(列表框)控件和ComboBox(下拉框)控件均用(下拉框)控件均用于顯示一組條目,以便操作者從中選擇一條或者多條信息,于顯示一組條目,以便操作者從中選擇一條或者多條信息,并對其進(jìn)行相應(yīng)的處理并對其進(jìn)行相應(yīng)的處理兩個(gè)控件的用法相似。兩個(gè)控件的用法相似。常用屬性和方法:常用屬性和

46、方法:uSelectedIndexSelectedIndex屬性:獲取或設(shè)置當(dāng)前選擇項(xiàng)的索引序號屬性:獲取或設(shè)置當(dāng)前選擇項(xiàng)的索引序號uSelectedItemSelectedItem屬性:獲取或設(shè)置當(dāng)前選擇項(xiàng)的值。屬性:獲取或設(shè)置當(dāng)前選擇項(xiàng)的值。uCountCount屬性:獲取項(xiàng)的個(gè)數(shù)。屬性:獲取項(xiàng)的個(gè)數(shù)。uItems.AddItems.Add方法:添加項(xiàng)。方法:添加項(xiàng)。uItems.ClearItems.Clear方法:清除所有項(xiàng)。方法:清除所有項(xiàng)。uItems.RemoveAtItems.RemoveAt方法:刪除指定的項(xiàng)。方法:刪除指定的項(xiàng)。1.4.6 錯(cuò)誤提示(錯(cuò)誤提示(ErrorPr

47、ovider)lErrorProvider組件一般用于提示用戶輸入的信息有錯(cuò)誤,利組件一般用于提示用戶輸入的信息有錯(cuò)誤,利用該組件可在指定的控件(如文本框)旁顯示一個(gè)閃爍的錯(cuò)誤用該組件可在指定的控件(如文本框)旁顯示一個(gè)閃爍的錯(cuò)誤圖標(biāo),當(dāng)用戶將鼠標(biāo)指針放在閃爍的圖標(biāo)上時(shí),會(huì)自動(dòng)顯示錯(cuò)圖標(biāo),當(dāng)用戶將鼠標(biāo)指針放在閃爍的圖標(biāo)上時(shí),會(huì)自動(dòng)顯示錯(cuò)誤信息。誤信息。l【例例1-7】 演示演示ErrorProvider組件的基本用法。組件的基本用法。1.5 WPF和和Silverlight應(yīng)用程序應(yīng)用程序l1.5.1 WPF應(yīng)用程序應(yīng)用程序l1.5.2 Silverlight應(yīng)用程序應(yīng)用程序l1.5.3 其他

48、應(yīng)用程序模板其他應(yīng)用程序模板1.5 WPF和和Silverlight應(yīng)用程序應(yīng)用程序lWPF高效率運(yùn)行動(dòng)畫、三維圖形和音頻視頻等多媒體功能高效率運(yùn)行動(dòng)畫、三維圖形和音頻視頻等多媒體功能WinForm應(yīng)用程序只能靠軟件來實(shí)現(xiàn),無法直接利用應(yīng)用程序只能靠軟件來實(shí)現(xiàn),無法直接利用GPU的硬件加速功能的硬件加速功能WPF和和Silverlight最適用于開發(fā)在最適用于開發(fā)在Windows 7、Windows 8操作系統(tǒng)上運(yùn)行的應(yīng)用程序。操作系統(tǒng)上運(yùn)行的應(yīng)用程序。WPF適用于適用于C/S客戶端開發(fā),客戶端開發(fā),Silverlight適用于手機(jī)和適用于手機(jī)和Web富客戶端開發(fā)。富客戶端開發(fā)。WPF利用操作

49、系統(tǒng)底層支持的利用操作系統(tǒng)底層支持的DirectX實(shí)現(xiàn)硬件加速。實(shí)現(xiàn)硬件加速。1.5.1 WPF應(yīng)用程序應(yīng)用程序l1DirectX簡介簡介1995年,年,DirectX 1.0誕生誕生u它提供了直接讀取圖形硬件(顯卡)的功能,但該版本它提供了直接讀取圖形硬件(顯卡)的功能,但該版本還不包括還不包括3D3D功能。當(dāng)時(shí)流行的編程接口是功能。當(dāng)時(shí)流行的編程接口是OpenGLOpenGL,DirectX 1.0DirectX 1.0剛推出時(shí),由于眾多的硬件廠家均不支持剛推出時(shí),由于眾多的硬件廠家均不支持DirectXDirectX,該版本基本沒有獲得成功。,該版本基本沒有獲得成功。1996年,微軟推出

50、年,微軟推出DirectX 2.0。u該版本在該版本在DirectXDirectX中加入了中加入了Direct3DDirect3D,用于訪問,用于訪問3D3D硬件加硬件加速的高級圖形功能,通過提供通用的速的高級圖形功能,通過提供通用的COMCOM編程接口使硬件編程接口使硬件和設(shè)計(jì)完全分離。和設(shè)計(jì)完全分離。1.5.1 WPF應(yīng)用程序應(yīng)用程序l1DirectX簡介簡介1997年,微軟推出年,微軟推出DirectX 3.0。此時(shí)。此時(shí)3D游戲逐漸深入人心游戲逐漸深入人心不少顯卡生產(chǎn)廠家開始支持不少顯卡生產(chǎn)廠家開始支持DirectX,并陸續(xù)推出,并陸續(xù)推出3D圖形加圖形加速卡。隨后微軟直接推出速卡。隨

51、后微軟直接推出DirectX 5.0(沒有出現(xiàn)(沒有出現(xiàn)4.0版)版)5.0版的版的3D功能日益強(qiáng)大。使游戲中的功能日益強(qiáng)大。使游戲中的3D技術(shù)逐漸走入成熟階技術(shù)逐漸走入成熟階段。此時(shí)段。此時(shí)DirectX也得到了大多數(shù)知名廠商的認(rèn)可和強(qiáng)力支也得到了大多數(shù)知名廠商的認(rèn)可和強(qiáng)力支持。持。2001年,微軟發(fā)布了年,微軟發(fā)布了DirectX 8.02002年,微軟發(fā)布年,微軟發(fā)布DirectX 9.02006年,微軟推出年,微軟推出DirectX 10.0版版1.5.1 WPF應(yīng)用程序應(yīng)用程序l1DirectX簡介簡介2009年,微軟推出多線程渲染的年,微軟推出多線程渲染的DirectX 11.0。

52、該版本引入。該版本引入了了Shader Model 5.0,以便讓,以便讓GPU從事更多的通用計(jì)算工從事更多的通用計(jì)算工作,而不僅僅是作,而不僅僅是3D運(yùn)算,從而鼓勵(lì)開發(fā)人員更好地將運(yùn)算,從而鼓勵(lì)開發(fā)人員更好地將GPU作為并行處理器來使用。作為并行處理器來使用。隨后,微軟將隨后,微軟將DirectX作為作為Windows 7、Windows 8操作系操作系統(tǒng)底層默認(rèn)的核心編程接口。統(tǒng)底層默認(rèn)的核心編程接口。而對而對DirectX 11.0封裝后的封裝后的WPF和和HTML5的實(shí)現(xiàn)的實(shí)現(xiàn),則同時(shí)則同時(shí)支持支持Windows 7和和Windows 8操作系統(tǒng)以及操作系統(tǒng)以及IE 9.0和和IE10.0瀏覽器瀏覽器【IE10.0正式版支持正式版支持Win7、Wi

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論