C_深入淺出新接觸_第1頁
C_深入淺出新接觸_第2頁
C_深入淺出新接觸_第3頁
C_深入淺出新接觸_第4頁
C_深入淺出新接觸_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、地址:050011 河北省石家莊市平安南大街32號(hào) 河北省地方稅務(wù)局計(jì)算機(jī)管理中心 甘冀平(gwok Oicq=90255)C#,深入淺出全接觸青蘋果工作室(編譯)目 錄 表一、什么是C#?二、Java與C#三、C#的主要特征四、安裝運(yùn)行環(huán)境五、C#編輯器六、C#的程序結(jié)構(gòu)七、C#和名稱空間八、C#中一個(gè)經(jīng)典例程的編寫與編譯九、C#編程實(shí)戰(zhàn)演習(xí)ABC 1、使用Visual Studio .NET編寫C#程序 2、使用Visual C#創(chuàng)建Windows應(yīng)用程序 3、創(chuàng)建C#類庫(Dll)一、什么是 C#?C# 是由Microsoft開發(fā)的一種新型編程語言,由于它是從C和C+ 中派生出來的,因此

2、具有C+的功能。同時(shí),由于是Microsoft公司的產(chǎn)品,它又同 VB一樣簡單。對(duì)于web開發(fā)而言,C#象 Java,同時(shí)具有Delphi的一些優(yōu)點(diǎn)。Microsoft宣稱:C#是開發(fā).NET框架應(yīng)用程序的最好語言。二、Java與 C# 要學(xué)習(xí)C#,不能不首先看一看Java語言。相對(duì)于其他編程語音,Java有一個(gè)無庸置疑的優(yōu)點(diǎn):用戶以及編譯器第一次不必了解生成可執(zhí)行代碼的特定CPU細(xì)節(jié)。Java引入了一個(gè)編譯代碼中間層,叫做字節(jié)代碼,并使用一個(gè)虛擬抽象的機(jī)器,而不是一個(gè)真實(shí)的機(jī)器。當(dāng)Java編譯器結(jié)束了一個(gè)源文件的編譯后,你所得到的不是可以立即在一個(gè)給定平臺(tái)上運(yùn)行的代碼,而是可以在任何真實(shí)的平

3、臺(tái)上運(yùn)行的字節(jié)代碼,唯一的條件就是這個(gè)平臺(tái)要理解和支持Java。這些發(fā)展包含著一個(gè)文化的變革。作為一個(gè)開發(fā)人員,你只需要確定Java虛擬機(jī)(JVM)提供的抽象層,不同的OS銷售商負(fù)責(zé)執(zhí)行代碼層,從而將中立于平臺(tái)的字節(jié)代碼映射到主機(jī)平臺(tái)的機(jī)構(gòu)中。在這種情況下,Java似乎是統(tǒng)一分布式計(jì)算機(jī)世界的領(lǐng)袖候選人了?!熬帉懸淮危肋h(yuǎn)運(yùn)行”(并且無論在哪里)一度成為Java誘人但卻真實(shí)的口號(hào)。那么為什么說Java只是“似乎”是一個(gè)好東西呢?跨平臺(tái)理論的發(fā)展很好地證明了這一點(diǎn)。我們看到,將Java代碼從一個(gè)平臺(tái)移植到另一個(gè)平臺(tái)Java這個(gè)語言最重要和最受吹捧的特點(diǎn)并不象宣傳的那樣容易。任何Java平臺(tái)都有其

4、自己的虛擬機(jī),它可以理解通用的字節(jié)代碼,并且及時(shí)地將其編譯為本地代碼。矛盾由此產(chǎn)生,不同虛擬機(jī)的執(zhí)行也很不相同,這一點(diǎn)足以使代碼的移植比預(yù)期耗費(fèi)多得多的時(shí)間,而且基本上不是自動(dòng)的。 那么,Java模型的好處在哪里呢?首先,Java是一種先進(jìn)的、面向?qū)ο蟮恼Z言,包含了預(yù)防常見錯(cuò)誤的內(nèi)置功能,并在僅僅一兩個(gè)對(duì)象中攜帶了許多經(jīng)常需要用到的功能。與C+相比,Java更易于讀寫,不容易出錯(cuò),而且更加美觀,但是它速度較慢也不太靈活。想實(shí)現(xiàn)在任何軟件和硬件平臺(tái)上都可虛擬移植,Java盡可能少地使用了公分母模型,也就是說放棄了將每個(gè)平臺(tái)開發(fā)到極限的能力。第二,虛擬機(jī)的概念本身就是可移植和可共用的,因此對(duì)于分布

5、式環(huán)境來說是理想的。Java對(duì)于為非Windows平臺(tái)開發(fā)代碼是最好的語言。那么對(duì)于Windows平臺(tái)來說,Java又怎么樣呢?讓Java適應(yīng)Windows是不可能的,這是由于Sun的許可約束問題。但是Java實(shí)在是太吸引人了,Microsoft比誰都能更清楚這一點(diǎn)。因此,Microsoft又一次采取了“拿來主義”的手法,很好地利用了Java 的眾多特性,隆重推出了Windows平臺(tái)的新銳力量,它就是相當(dāng)簡單但十分強(qiáng)大的面向?qū)ο蟮腃#編程語言。C#超過了C+,它天生就包含了.NET框架類庫中的所有類,并使語法簡單化??梢哉f,Java具備的優(yōu)點(diǎn),C#都可以或者都將具備! 三、C#的主要特征C#

6、是.NET的關(guān)鍵性語言,它是整個(gè).NET平臺(tái)的基礎(chǔ)。與C#相比,.NET所支持的其它語言顯然是配角身份。比如,VB.NET的存在主要是對(duì)千萬個(gè)VB開發(fā)人員的負(fù)責(zé)。對(duì)于JScript.NET和 Managed C+ 也同樣可以這么說,后者只是增加了調(diào)用.NET類的C+ 語言。C#是唯一沒有在設(shè)計(jì)思路中加入了前輩語言某種遺傳的新事物。.NET平臺(tái)將 C#作為其固有語言,重溫了許多Java的技術(shù)規(guī)則。C#中也有一個(gè)虛擬機(jī),叫做公用語言運(yùn)行環(huán)境(CLR),它的對(duì)象也具有同樣的層次。但是 C#的設(shè)計(jì)意圖是要使用全部的Win32 API甚至更多。由于C#與 Windows的體系結(jié)構(gòu)相似,因此 C# 很容易

7、被開發(fā)人員所熟悉。 Java的目的是要拯救分布式計(jì)算世界,C# 則不同。C#本質(zhì)上是C+的進(jìn)化產(chǎn)物,使用了包括聲明、表達(dá)式及操作符在內(nèi)的許多C+特征,但是 C#還有更多的增強(qiáng)功能,比如類型安全(type-Safe)、事件處理、碎片帳集、代碼安全性等。在C#中,除了可以使用許多API,更能使用.NET類。特別地是,我們可以處理COM的自動(dòng)化和C類型的函數(shù)。C#還讓你調(diào)用無管理的代碼,也就是在CLR引擎控制之外的代碼。這種不安全的模式允許你操作原始指針來讀和寫內(nèi)置碎片帳集控制以外的內(nèi)存。四、安裝運(yùn)行環(huán)境安裝.NET SDK 是在機(jī)器上運(yùn)行C# 的第一步。.NET SDK 可以安裝在Windows

8、ME、Windows NT或Windows 2000上,但是最好的選擇是Windows 2000上。選擇了操作系統(tǒng)后,再執(zhí)行以下步驟: 安裝 IE 5.5 安裝Microsoft .NET Framework SDK。它是免費(fèi)的,可以從以下站點(diǎn)下載. NET Framework SDK. 完成以上安裝后,就可以在任何文本編輯器中編寫代碼了,最后保存為擴(kuò)展名為.cs的文件。 五、C# 編輯器編寫C#程序可以在文本編輯器中進(jìn)行,或者在集成開發(fā)環(huán)境Visual Studio中進(jìn)行。市場(chǎng)上還有一些第三方編輯器,其中一些是免費(fèi)的。更多信息請(qǐng)查看這里。六、C#的程序結(jié)構(gòu) 一個(gè)C#程序包含一個(gè)類,這個(gè)類中至

9、少有一個(gè)公用的靜態(tài)方法Main,這個(gè)方法對(duì)程序進(jìn)行初始化并終止程序。在Main方法中創(chuàng)建子對(duì)象、執(zhí)行方法并實(shí)現(xiàn)軟件的邏輯處理。下面是一個(gè)典型的微型C#例程:using System;class MyFirstAppstatic int Main(String args) return 1; 在C#中,要使用下面的聲明來引入外部定義,而不是用象C+中的#include:using System;using System.Data;然后,使用C#編譯器csc.exe編譯代碼。假定將前面的代碼保存為文件hello.cs,使用以下命令:csc hello.cs結(jié)果就生成了hello.exe,它向控制臺(tái)

10、輸出窗口寫入信息 Hello .NET。 盡管編譯后的結(jié)果文件包含.exe后綴,但hello.exe卻不是一個(gè)真正的、明確的CPU代碼段。實(shí)際上,它包含了.NET字節(jié)代碼。當(dāng)啟動(dòng)hello.exe時(shí),CLR 將提取編譯器寫入代碼中的重要元數(shù)據(jù)。接著,一個(gè)叫做 Just-In-Time 編譯器的模塊將代碼映射到特定的 CPU中,開始實(shí)際的執(zhí)行過程。七、C# 和名稱空間實(shí)際中的 C#程序通常包含多個(gè)文件,其中每個(gè)文件都可以包含一個(gè)或多個(gè)名稱空間。一個(gè)名稱空間就是一個(gè)名字,它向編譯器描繪出一些軟件實(shí)體,如類、界面、枚舉以及嵌入的名稱空間。名稱空間和數(shù)據(jù)類型一樣必須有唯一的名稱。在一個(gè)C#程序中,可以

11、通過一個(gè)元素的完整資格名稱來識(shí)別它,這個(gè)資格名稱表明出層次關(guān)系。例如,System.String是 .NET String類型完整的資格名稱。但是為了簡化代碼起見,只要聲明正在使用System名稱空間:using System; 就可以使用一個(gè)相對(duì)名稱如String來作為完整名稱的同義詞,而最后依然代表 System.String。通過使用namesapce關(guān)鍵字,我們還可以將C#程序或者類包裹在自身的名稱空間中,比如:namespace MyOwnusing System;/ for Stringclass MyFirstApp static int Main(String args) re

12、turn 1; 名稱空間 MyOwn 是全局名稱空間的一部分。調(diào)用它不需要再使用前綴,因?yàn)槠渫暾Y格名稱就是簡單的MyOwn。定義一個(gè)名稱空間是保持公共名稱唯一性的一個(gè)途徑。實(shí)際上,如果兩個(gè)類的名稱發(fā)生沖突,但只要它們分別屬于不同的名稱空間,兩個(gè)類仍然是各自唯一的。 八、C#中一個(gè)經(jīng)典例程的編寫與編譯1、編寫代碼“Hello World”幾乎是學(xué)習(xí)任何一門編程語言都要涉及的第一個(gè)例程。下面也讓我們用C#完成這個(gè)工作。在上面提到的任意一個(gè)C#編輯器中(比如寫字板),鍵入以下代碼:using System;class MyClassstatic void Main() Console.WriteL

13、ine(Hello World!); 然后保存為文件myclass.cs。2、編譯程序csc myclass.cs于是,C# 編譯器在工程文件的bin 目錄下生成了一個(gè)myclass.exe文件。運(yùn)行這個(gè) exe,看輸出是什么。 3、代碼含義下面我們逐行看看這些代碼的含義:程序的第一行是using System。為什么要using System呢?因?yàn)镾ystem是存儲(chǔ)系統(tǒng)類的名稱空間,程序中用來在控制臺(tái)上顯示輸出的Console(控制臺(tái))類就是在System 名稱空間中定義的。下一行是class MyClass。C# 中的class關(guān)鍵字用于創(chuàng)建一個(gè)新類。每個(gè)類都有一個(gè)靜態(tài)的void Mai

14、n() 函數(shù),這個(gè)函數(shù)就是一個(gè) C# 程序的入口。Console 類的WriteLine方法負(fù)責(zé)向控制臺(tái)輸出文本信息。九、C#編程實(shí)戰(zhàn)演習(xí)ABC1、用Visual Studio .NET編寫C#程序Visual Studio.NET 是Microsoft新一代的旗艦開發(fā)環(huán)境,在這個(gè)環(huán)境中,我們能夠看到Microsoft將所有開發(fā)工具都集成到一個(gè)IDE中。我們驚喜地發(fā)現(xiàn),我們擁有了一個(gè)所有編程語言都適用的代碼編輯器。而且,這個(gè)環(huán)境中還具一個(gè)HTML 編輯器、一個(gè)XML編輯器、一個(gè)SQL Server界面以及一個(gè)Server Explorer。下面,我們將學(xué)習(xí)如何在 Visual Studio .

15、NET中編寫C#程序。初始頁面啟動(dòng)VS.NET后,我們會(huì)看到與以前版本完全不同的景象。實(shí)際上,它看起來更象Visual J+。一開始出現(xiàn)的是初始頁面,這是一個(gè)HTML格式的頁面。從上圖中,我們能看到在線Microsoft web 站點(diǎn)的鏈接、現(xiàn)有解決方案列表以及創(chuàng)建屬于自己的個(gè)性文件(Profile)的功能。創(chuàng)建C# 控制臺(tái)應(yīng)用程序在Visual Studio.Net中創(chuàng)建 C# 應(yīng)用程序是簡單得不能再簡單的事情。點(diǎn)擊 Create New Project(創(chuàng)建新工程)鏈接 后,會(huì)出現(xiàn)以下的對(duì)話窗口。從這個(gè)窗口中的多種工程樣本中,選擇需要的一個(gè):在這里,我們選擇Visual C# 工程文件。選

16、中后,出現(xiàn)下面的對(duì)話框:然后再選擇“Console Application”(控制臺(tái)應(yīng)用程序),命名為 Hello1 (不需要加引號(hào)),點(diǎn)擊“OK”,VS.NET開始生成應(yīng)用程序的殼(shell):現(xiàn)在讓我們來分析一下這個(gè)殼中已經(jīng)具備的代碼。首先我們會(huì)看到關(guān)鍵字namespace(名稱空間)。你可以將名稱空間簡單地理解為是將類歸在一起的東西。C# 中的名稱空間與C+中的名稱空間相似,但還具備一些額外的功能。另外,它也同Java中的package關(guān)鍵字相似。下面的語句是using 命令,它負(fù)責(zé)告訴編譯器在System 庫中尋找未知的類。.NET 攜帶了一套可擴(kuò)展的系統(tǒng)庫,由它們的名稱空間名確定其

17、范圍。在C# 中,所有的I/O 操作都是系統(tǒng)庫的一部分,而不是語言本身的一部分。接著我們看到public class Class1聲明。作為一個(gè)先進(jìn)的面向?qū)ο蟮拈_發(fā)語言,C# 中的所有代碼都必須包含在一個(gè)類里面,不存在全局函數(shù)或數(shù)據(jù)。程序中還包含一個(gè)方法Main,它是所有C# 程序的進(jìn)入大門。修改一下代碼現(xiàn)在我們要增加一些代碼來執(zhí)行一些有用的操作。第一件事是將右上角的窗口切換到Class View(類視圖),然后展開Hello1 名稱空間,點(diǎn)擊 Class1 類。在屬性窗口中將名稱修改為Hello。現(xiàn)在的代碼窗口變?yōu)椋簩⒐鈽?biāo)移到Main方法內(nèi)的TODO注釋之后,輸入“Console”這個(gè)命令。

18、請(qǐng)注意發(fā)生了什么:你能看到系統(tǒng)自動(dòng)列出了Console類的相關(guān)方法。選擇 WriteLine,然后寫入下面這一行:Console.WriteLine(Hello from VS.NET!);運(yùn)行現(xiàn)在,從“Build”菜單中選擇“Build”項(xiàng),然后從“Debug”(調(diào)試)菜單中選擇 Start Without Debugging(不調(diào)試啟動(dòng))。最后,控制臺(tái)應(yīng)該顯示出 Hello From VS.NET!的信息。這說明,我們已經(jīng)大功告成了 :-)2、用Visual C# 創(chuàng)建Windows應(yīng)用程序在Visual C#創(chuàng)建一個(gè)Windows (GUI) 應(yīng)用程序要以前版本的VC+ 容易得多。下面將

19、介紹用Visual C#工程文件向?qū)?chuàng)建Windows應(yīng)用程序的過程。創(chuàng)建應(yīng)用程序框架在VS .NET IDE中選擇“新建工程文件Visual C# 工程文件Windows 應(yīng)用程序”:然后點(diǎn)擊 OK,出現(xiàn)一個(gè)表單設(shè)計(jì)視圖(這與VB或Delphi相同)。在右側(cè)我們看到了一個(gè)解決方案導(dǎo)航器( Solution Explorer)。向?qū)樾卤韱卧黾恿艘粋€(gè)Form1.cs 文件,其中包括了這個(gè)表單及其所有子窗口的的代碼:雙擊 Form1.cs就能看到這個(gè)代碼:namespace mcWinFormsApp using System; using System.Drawing; using Syste

20、m.Collections; using System.ComponentModel; using System.WinForms; using System.Data; / / Summary description for Form1. / / / Required designer variable. / public Form1() / / Required for Windows Form Designer support / InitializeComponent(); / / TODO: Add any constructor code after InitializeCompo

21、nent call / / / Clean up any resources being used. / public override void Dispose() base.Dispose(); components.Dispose(); / / Required method for Designer support - do not modify / the contents of this method with the code editor. / private void InitializeComponent() /this.TrayHeight = 0; /this.Tray

22、LargeIcon = false; /this.TrayAutoArrange = true; this.Text = Form1; this.Click += new System.EventHandler (this.Form1_Click); protected void Form1_Click (object sender, System.EventArgs e) / / The main entry point for the application. / public static void Main(string args) Application.Run(new Form1(

23、); 從以上代碼中,我們看到:向?qū)г黾恿艘粋€(gè)默認(rèn)的名稱空間以及對(duì)WinForms 所要求的不同名稱空間的引用;Form1 類是從中派生出來的;InitializeComponent方法負(fù)責(zé)初始化(創(chuàng)建)表單及其控件(當(dāng)在表單中托放下一些控件時(shí),可以看到它的更多細(xì)節(jié));Dispose方法負(fù)責(zé)清除所有不再使用的資源 。添加控件要向一個(gè)表單中添加控件或者子窗口,需要打開 工具箱ToolBox。這個(gè)工具箱的概念來自VB。點(diǎn)擊菜單“視圖工具箱”,激活工具箱功能:ToolBox(工具箱)窗口的樣子如下圖所示?,F(xiàn)在就可以添加控件了,添加方法與Visual Studio的以前版本一樣,拖放或者雙擊控件都可以。

24、首先在表單上托放下一個(gè)按鈕和一個(gè)編輯框,然后讓我們看看系統(tǒng)向初始組件(InitializeComponent)中增加了什么東西。接著在屬性窗口中設(shè)置控件的屬性,這與VB中的操作方式一樣。在控件上點(diǎn)擊右鍵,并點(diǎn)中“屬性”菜單條就可以調(diào)出屬性窗口。 現(xiàn)在看看InitializeComponent方法,就會(huì)發(fā)現(xiàn)這些代碼已經(jīng)增加到其中了。接著手工修改一下這些代碼:/this.TrayHeight = 0; /this.TrayLargeIcon = false; /this.TrayAutoArrange = true; button1.TabIndex = 0; button1.Text = Bro

25、wse; button1.Click += new System.EventHandler (this.button1_Click); textBox1.Text = textBox1; textBox1.TabIndex = 1; this.Text = Form1; this.Click += new System.EventHandler (this.Form1_Click); 添加事件處理器最后,要為按鈕增加一個(gè)事件處理器,實(shí)現(xiàn)瀏覽文件的目的。在按鈕上雙擊,打開Button1_Click事件處理器。同理,使用同樣的方法可以為任何控件編寫事件處理器。protected void butt

26、on1_Click (object sender, System.EventArgs e) OpenFileDialog fdlg = new OpenFileDialog(); fdlg.Title = C# Corner Open File Dialog ; fdlg.InitialDirectory = c: ; fdlg.Filter = All files (*.*)|*.*|All files (*.*)|*.* ; fdlg.FilterIndex = 2 ; fdlg.RestoreDirectory = true ; if(fdlg.ShowDialog() = Dialog

27、Result.OK) textBox1.Text = fdlg.FileName ; 到此就完成了所有步驟,剩下的就是運(yùn)行這個(gè)程序。它實(shí)現(xiàn)了瀏覽一個(gè)文件,然后將選擇的文件名裝進(jìn)文本框的功能。請(qǐng)下載相關(guān)代碼:winFormApp.zip 。3、創(chuàng)建C# 類庫 (Dll) 以前在VC+中創(chuàng)建一個(gè)dll文件不能說簡單,但在Visual C# 中,這將同樣是輕而易舉的事情。下面的介紹分成兩部分:1、創(chuàng)建 DLL 2、在客戶端測(cè)試 dll。(1)創(chuàng)建DLL首先創(chuàng)建一個(gè)空的類庫工程。在VS.NET集成環(huán)境(IDE)中選擇“文件新建工程文件Visual C# 工程類庫”,點(diǎn)擊Browse(瀏覽)按鈕選擇工程

28、文件名和相應(yīng)的目錄,再點(diǎn)擊 OK:接著看看工程和它的相關(guān)文件。Solution Explorer(解決方案探測(cè)器)向工程中增加兩個(gè)C# 類,第一個(gè)是 AssemblyInfo.cs ,第二個(gè)是Class1.cs。我們并討論AssemblyInfo,重點(diǎn)介紹 Class1.cs。雙擊Class1.cs,就能看到一個(gè)名稱空間mcMath。我們將在客戶機(jī)引用這個(gè)名稱空間以使用這個(gè)類庫:namespace mcMath using System; / / Summary description for Class1. / public class Class1 public Class1() / /

29、TODO: Add Constructor Logic here / 現(xiàn)在就可以Build(構(gòu)造)這個(gè)工程了。Build(構(gòu)造)完畢后,就會(huì)在工程文件的bin/debug 目錄中生成mcMath.dll文件。 增加一個(gè)方法從View (視圖)菜單中打開ClassView(類視圖),開始只顯示Class1,沒有方法和屬性?,F(xiàn)在來增加一個(gè)方法和一個(gè)屬性。用鼠標(biāo)右鍵單擊“Class1”,選擇“Add(增加) Add Method(增加方法)”,這時(shí)將彈出C# 方法生成向?qū)В涸谶@個(gè)窗口中增加方法名、存取類型、返回類型、參數(shù)以及注釋信息。使用Add(增加)和Remove(取消)按鈕可分別從參數(shù)列表中增加

30、和取消參數(shù)。這里增加了一個(gè)方法long Add( long val1, long val2 ),它負(fù)責(zé)將兩個(gè)數(shù)字相加并返回和。增加一個(gè)屬性同理可以 C# 屬性生成向?qū)?,向類中增加一個(gè)屬性:增加了一個(gè)方法和一個(gè)屬性后, Class1變成下圖所示的樣子: 仔細(xì)觀察這個(gè) Class1,你會(huì)發(fā)現(xiàn)C#的向?qū)С绦蛳蝾愔性黾恿巳缦聝蓚€(gè)函數(shù): public long Add (long val1, long val2) return 0; public bool Extra get return true; set 向類中增加代碼 這里把Class1修改成為 mcMathComp ,因?yàn)?Class1是個(gè)容易造成混淆的名字,當(dāng)想將這個(gè)類用在一個(gè)客戶應(yīng)用程序中時(shí)會(huì)造成問題。下面的代碼對(duì)上面的做了些調(diào)整:namespace mcMath using System; public class mcMathComp privat

溫馨提示

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

評(píng)論

0/150

提交評(píng)論