版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
C#程序設(shè)計(jì)教程
第1章C#與VisualStudio集成開發(fā)環(huán)境22十月2025C#程序設(shè)計(jì)教程第1章C#與VisualStudio集成開發(fā)環(huán)境
1.1.NET簡介1.2C#1.3VisualStudio集成開發(fā)環(huán)境1.4創(chuàng)建第一個(gè)C#控制臺(tái)(命令行)程序1.5創(chuàng)建第一個(gè)C#Windows程序1.6C#程序結(jié)構(gòu)介紹22十月2025C#程序設(shè)計(jì)教程1.1.NET簡介.NET就是Microsoft的XMLWeb服務(wù)平臺(tái)。Microsoft.NET平臺(tái)包含廣泛的產(chǎn)品系列,它們都是基于XML和Internet行業(yè)標(biāo)準(zhǔn)構(gòu)建,不論操作系統(tǒng)或編程語言有何差別,XMLWeb服務(wù)能使應(yīng)用程序在Internet上傳輸和共享數(shù)據(jù)。22十月2025C#程序設(shè)計(jì)教程1.1.NET簡介.NETFramework具有兩個(gè)主要組件:公共語言運(yùn)行庫和.NETFramework類庫。公共語言運(yùn)行庫是.NETFramework的基礎(chǔ)??梢詫⑦\(yùn)行庫看作一個(gè)在執(zhí)行時(shí)管理代碼的代理,它提供內(nèi)存管理、線程管理和遠(yuǎn)程處理等核心服務(wù),并且還強(qiáng)制實(shí)施嚴(yán)格的類型安全以及可提高安全性和可靠性的其他形式的代碼準(zhǔn)確性。.NETFramework的另一個(gè)主要組件是類庫,它是一個(gè)綜合性的面向?qū)ο蟮目芍赜妙愋图?,可以使用它開發(fā)多種應(yīng)用程序,這些應(yīng)用程序包括傳統(tǒng)的命令行或圖形用戶界面(GUI)應(yīng)用程序,也包括基于ASP.NET所提供的最新創(chuàng)新的應(yīng)用程序(如Web窗體和XMLWebServices)。1.公共語言運(yùn)行庫CLI(CommonLanguageInfrastructure,通用語言框架)實(shí)際上是一種為虛擬機(jī)環(huán)境而制訂的規(guī)范,使得由各種高級(jí)語言所編制的程序可以在不同的系統(tǒng)環(huán)境中執(zhí)行之而不必更改或重新編譯原程序代碼。
微軟的.NET的基礎(chǔ)CLR就是CLI的一個(gè)實(shí)例。CLR只不過是CLI規(guī)范在個(gè)人計(jì)算機(jī)、在微軟Windows操作系統(tǒng)中的一個(gè)執(zhí)行而已。毫無疑問,其它操作系統(tǒng)環(huán)境和硬件平臺(tái)上,CLI也同樣可行。你有時(shí)會(huì)發(fā)現(xiàn)術(shù)語CLI和CLR可交換使用,盡管很明顯它們不是一回事情。CLI是一種標(biāo)準(zhǔn)規(guī)范,而CLR卻是微軟對(duì)CLI的實(shí)現(xiàn)。
公共語言運(yùn)行庫(CommonLanguageRuntime,CLR)也叫公共語言運(yùn)行時(shí),是.NET框架的基礎(chǔ)。公共語言運(yùn)行庫簡化了應(yīng)用程序的開發(fā),提供了一個(gè)強(qiáng)大的、安全的執(zhí)行環(huán)境,支持多語言,并簡化了應(yīng)用程序的部署和管理。公共語言運(yùn)行庫也稱為“托管環(huán)境”,在這個(gè)托管環(huán)境中將自動(dòng)提供諸如垃圾回收和安全性等通用服務(wù)。用C#編寫的源代碼被編譯為一種符合CLI規(guī)范的中間語言(IL)。IL代碼與資源(例如位圖和字符串)一起作為一種稱為程序集的可執(zhí)行文件存儲(chǔ)在磁盤上,通常具有的擴(kuò)展名為.exe或.dll。程序集包含清單,它提供有關(guān)程序集的類型、版本、區(qū)域性和安全要求等信息。1.1.NET簡介C#程序設(shè)計(jì)教程2025/10/22
1.1.NET簡介C#程序設(shè)計(jì)教程2025/10/222..NETFramework類庫
在早期的開發(fā)中,各種應(yīng)用開發(fā)人員使用各自平臺(tái)所提供的工具類庫,開發(fā)適用于不同平臺(tái)的應(yīng)用時(shí),則要求開發(fā)人員掌握多種類庫的使用方法,造成大量的資源浪費(fèi),也降低了開發(fā)人員的效率。.NET框架提供了豐富的接口集合,以及抽象與非抽象類。開發(fā)人員可以原封不動(dòng)使用非抽象類,或者在許多情況下,派生出自定義的類。要使用接口的功能,開發(fā)人員既可以創(chuàng)建一個(gè)實(shí)現(xiàn)接口的類,也可以從某個(gè)實(shí)現(xiàn)該接口的.NET框架類中派生出類。
曾經(jīng)難于實(shí)現(xiàn),或是需要第三方組件支持的應(yīng)用程序特性,如今使用.NET框架后,可以通過少量代碼得以實(shí)現(xiàn)。.NETFramework還包含一個(gè)由4000多個(gè)類組成的內(nèi)容詳盡的庫,這些類被組織為命名空間,為從文件輸入和輸出、字符串操作、XML分析到Windows窗體控件的所有內(nèi)容提供了各種有用的功能。1.1.NET簡介C#程序設(shè)計(jì)教程2025/10/2222十月2025C#程序設(shè)計(jì)教程1.2C#
C#是一種簡潔、類型安全的面向?qū)ο蟮恼Z言,開發(fā)人員可以使用它來構(gòu)建在.NETFramework上運(yùn)行的各種安全、可靠的應(yīng)用程序。使用C#,可以創(chuàng)建傳統(tǒng)的Windows客戶端應(yīng)用程序、XMLWebservices、分布式組件、客戶端/服務(wù)器應(yīng)用程序、數(shù)據(jù)庫應(yīng)用程序等等。C#語法表現(xiàn)力強(qiáng),而且簡單易學(xué)。C#的大括號(hào)語法使任何熟悉C、C++或Java的人都可以立即上手。了解上述任何一種語言的開發(fā)人員通常在很短的時(shí)間內(nèi)就可以開始使用C#高效地進(jìn)行工作。C#語法簡化了C++的諸多復(fù)雜性,并提供了很多強(qiáng)大的功能,例如可為null的值類型、枚舉、委托、lambda表達(dá)式和直接內(nèi)存訪問,這些都是Java所不具備的。C#支持泛型方法和類型,從而提供了更出色的類型安全和性能。C#還提供了迭代器,允許集合類的實(shí)施者定義自定義的迭代行為,以便容易被客戶端代碼使用。22十月2025C#程序設(shè)計(jì)教程1.2VisualStudio簡介C#語言簡介
作為一種面向?qū)ο蟮恼Z言,C#支持封裝、繼承和多態(tài)性的概念。所有的變量和方法,包括Main方法(應(yīng)用程序的入口點(diǎn)),都封裝在類定義中。類只能直接從一個(gè)父類繼承,但它可以實(shí)現(xiàn)任意數(shù)量的接口。重寫父類中的虛方法的各種方法要求override關(guān)鍵字作為一種避免意外重定義的方式。在C#中,結(jié)構(gòu)類似于一個(gè)輕量類;它是一種堆棧分配的類型,可以實(shí)現(xiàn)接口,但不支持繼承。C#的生成過程比C和C++簡單,比Java更為靈活。沒有單獨(dú)的頭文件,也不要求按照特定順序聲明方法和類型。C#源文件可以定義任意數(shù)量的類、結(jié)構(gòu)、接口和事件。
22十月2025C#程序設(shè)計(jì)教程1.3VisualStudio集成開發(fā)環(huán)境1.起始頁VisualStudio2017是微軟于2017年3月8日正式推出的新版本,是迄今為止最具生產(chǎn)力的VisualStudio版本。其內(nèi)建工具整合了.NETCore、Azure應(yīng)用程序、微服務(wù)(microservices)、Docker容器等所有內(nèi)容。
單擊左下角“開始”
“所有程序”
“VisualStudio2017”啟動(dòng)VS2017(MicrosoftVisualStudio2017的縮寫),在默認(rèn)情況下會(huì)顯示圖1-2所示的起始頁。
1.3VisualStudio集成開發(fā)環(huán)境C#程序設(shè)計(jì)教程2025/10/22VisualC#集成開發(fā)環(huán)境(IDE)是一種通過常用用戶界面公開的開發(fā)工具的集合。有些工具是與其他VisualStudio語言共享的,還有一些工具(如C#編譯器)是VisualC#特有的。本節(jié)提供如何在使用IDE時(shí)針對(duì)開發(fā)過程的各個(gè)階段使用最重要的VisualC#工具的概述。以下是VisualC#中最重要的工具和窗口。大多數(shù)工具的窗口可從“視圖”菜單打開,僅介紹初學(xué)者需要使用的五個(gè)窗口。代碼編輯器,用于編寫源代碼。
“工具箱”,用于使用鼠標(biāo)快速開發(fā)用戶界面。“解決方案資源管理器”,用于查看和管理項(xiàng)目文件和設(shè)置。
“屬性”窗口,用于配置用戶界面中控件的屬性和事件?!叭蝿?wù)列表”窗口,常用來顯示錯(cuò)誤列表。1.3VisualStudio集成開發(fā)環(huán)境C#程序設(shè)計(jì)教程2025/10/22
1.3VisualStudio集成開發(fā)環(huán)境C#程序設(shè)計(jì)教程2025/10/2222十月2025C#程序設(shè)計(jì)教程1.3VisualStudio集成開發(fā)環(huán)境2.開發(fā)環(huán)境當(dāng)打開或者新建一個(gè)項(xiàng)目后,VisualStudio20XX的一個(gè)典型開發(fā)環(huán)境如圖所示。由于VisualStudio20XX的開發(fā)環(huán)境布局可以定制,如果你機(jī)器上的VisualStudio20XX如果被其他人使用過,你看到的界面和有可能會(huì)不同。22十月2025C#程序設(shè)計(jì)教程1.3VisualStudio集成開發(fā)環(huán)境2.開發(fā)環(huán)境
(1)Windows窗體設(shè)計(jì)器/代碼編輯器
圖1-4正中間部分就是用戶編輯區(qū)域,也是Windows窗體設(shè)計(jì)器和代碼編輯器。用戶編輯區(qū)域允許用戶打開某個(gè)文件并對(duì)文件進(jìn)行修改。在用戶編輯區(qū)主要有兩種視圖:設(shè)計(jì)視圖和代碼視圖??梢栽谠O(shè)計(jì)視圖和代碼視圖之間進(jìn)行切換。更通俗的說法是,設(shè)計(jì)視圖用來實(shí)現(xiàn)程序的外觀,而代碼視圖用來實(shí)現(xiàn)程序的功能。設(shè)計(jì)視圖允許在用戶界面或網(wǎng)頁上指定控件和其他項(xiàng)的位置??梢詮墓ぞ呦?/p>
中輕松拖動(dòng)控件,并將其置于設(shè)計(jì)圖面上。圖1-5所示的是VisualStudio2017的窗體設(shè)計(jì)視圖。22十月2025C#程序設(shè)計(jì)教程1.3VisualStudio集成開發(fā)環(huán)境2.開發(fā)環(huán)境
在窗體設(shè)計(jì)視圖里,以可視化的方式顯示組件(如Windows窗體、Web頁面、用戶控件和數(shù)據(jù)集等等)。VisualStudio2017最重要的特點(diǎn)就是所見即所得(WhatYouSeeIsWhatYouGet),你看到的界面就是程序運(yùn)行的最終效果。程序員可以在這里看見并修改窗體的布局和設(shè)置,用戶可以通過單擊選中一個(gè)窗體或者控件,也可以通過鼠標(biāo)的拖放來改變控件或窗體的位置和大小。
在設(shè)計(jì)視圖下點(diǎn)擊菜單“視圖”
“代碼”,可以切換到代碼視圖,如圖1-6所示。源視圖用于顯示文件或文檔的源代碼。此視圖支持編碼幫助功能,如IntelliSense、可折疊代碼節(jié)、重構(gòu)
和代碼段插入等。還有一些其他功能,如自動(dòng)換行、書簽和顯示行號(hào)等。在代碼視圖中,用戶可以編寫代碼,實(shí)現(xiàn)你想要完成的功能。在代碼視圖下點(diǎn)擊菜單“視圖”
“設(shè)計(jì)器”可以切換到設(shè)計(jì)視圖。如果程序員打開了多個(gè)文件,那么這些文件將以標(biāo)簽的方式顯示在用戶編輯區(qū)的頂部,標(biāo)簽的標(biāo)題即為文件名。如果標(biāo)簽的標(biāo)題后面帶一個(gè)“*”符號(hào),如圖1-7所示。則表明這個(gè)文件已經(jīng)進(jìn)行了修改,但尚未保存,點(diǎn)擊工具欄上的按鈕
即可保存全部修改,“*”消失。22十月2025C#程序設(shè)計(jì)教程1.3VisualStudio集成開發(fā)環(huán)境2.開發(fā)環(huán)境VisualC#代碼編輯器是編寫源代碼的字處理程序。就像MicrosoftWord對(duì)句子、段落和語法提供廣泛支持一樣,C#代碼編輯器也為C#語法和.NETFramework提供廣泛支持。這些支持對(duì)初學(xué)者而言主要為以下三個(gè)主要的類別:IntelliSense:在編輯器中鍵入.NETFramework類和方法時(shí),不斷對(duì)其基本文檔進(jìn)行更新,同時(shí)還具有自動(dòng)代碼生成功能。IntelliSense(智能感知)是一組相關(guān)功能的名稱,旨在盡量減少查找?guī)椭璧臅r(shí)間,有助于更加準(zhǔn)確高效地輸入代碼。這些功能都提供了在編輯器中鍵入的語言關(guān)鍵字、.NETFramework類型和方法簽名的基本信息。這些信息會(huì)顯示在工具提示、列表框和智能標(biāo)記中。①完成列表②列出成員③
參數(shù)信息④快速信息22十月2025C#程序設(shè)計(jì)教程1.3VisualStudio集成開發(fā)環(huán)境2.開發(fā)環(huán)境
可讀性幫助:大綱顯示、設(shè)置代碼格式和著色。
代碼編輯器會(huì)自動(dòng)將命名空間、類和方法視為可折疊區(qū)域,以便于查找和讀取源代碼文件的其他部分。在代碼視圖的最左側(cè)有一條豎線,線上對(duì)應(yīng)于每個(gè)方法開始處有“+”“-”號(hào),單擊“+”號(hào)可以展開這個(gè)方法的代碼,單擊“-”號(hào)可以折疊這個(gè)方法的代碼,方法代碼被折疊后,方法名后面將顯示一個(gè)帶邊框的省略號(hào),把光標(biāo)放到這個(gè)省略號(hào)上,會(huì)彈出一個(gè)窗口,顯示被隱藏的代碼,如圖1-13所示。VisualStudio2017的代碼編輯器以不同的顏色顯示代碼中的不同內(nèi)容,默認(rèn)情況下以藍(lán)色顯示C#的關(guān)鍵字,以棕色顯示字符串,以藍(lán)綠色顯示類名,以綠色顯示注釋。如果想要修改這些默認(rèn)的顏色,比如把關(guān)鍵字改為紅色,并且把字體放大一點(diǎn),點(diǎn)擊“工具”
“選項(xiàng)”,展開左側(cè)的“環(huán)境”,選中“字體和顏色”,在“顯示項(xiàng)”選中“關(guān)鍵字”,“項(xiàng)前顏色”選中“紅色”,點(diǎn)擊“確定”按鈕,如圖1-14所示??纯创a編輯器是不是變成你想要的效果了,如圖1-15所示。如果你多次更改,想一次性回到代碼編輯器的初始狀態(tài),那就在圖1-14當(dāng)中點(diǎn)擊“使用默認(rèn)值”就還原了。22十月2025C#程序設(shè)計(jì)教程1.3VisualStudio集成開發(fā)環(huán)境2.開發(fā)環(huán)境
波浪下劃線:當(dāng)您鍵入內(nèi)容時(shí),對(duì)拼寫錯(cuò)誤的單詞、語義錯(cuò)誤、錯(cuò)誤的語法以及警告情況的可見通知。波浪下劃線可以即時(shí)反饋鍵入代碼時(shí)發(fā)生的錯(cuò)誤。紅色波浪下劃線標(biāo)識(shí)語法錯(cuò)誤(例如缺少分號(hào)或括號(hào)不匹配)或語義錯(cuò)誤(例如嘗試將string
文本賦給int
類型的變量),而藍(lán)色的波浪下劃線標(biāo)識(shí)編譯器錯(cuò)誤,將光標(biāo)放到波浪形的上,會(huì)提示相應(yīng)的錯(cuò)誤信息,“錯(cuò)誤列表”窗口也會(huì)提示相應(yīng)的錯(cuò)誤信息,如圖1-16所示,對(duì)代碼編寫很有幫助。(2)工具箱
窗體設(shè)計(jì)區(qū)域的左側(cè)為工具箱,工具箱中放置了各種控件,當(dāng)繪制程序界面時(shí),界面中的元素都是從工具箱當(dāng)中得來的,如圖1-17所示,它顯示可以被添加到VisualStudio2017項(xiàng)目中的項(xiàng)的圖標(biāo)。如果你的電腦上面看不到工具箱,點(diǎn)擊“視圖”
“工具箱”可以打開工具箱。另外再次重申,只有設(shè)計(jì)視圖狀態(tài)下工具箱可用,當(dāng)編輯控制臺(tái)應(yīng)用程序時(shí),不會(huì)顯示工具箱中的項(xiàng)。22十月2025C#程序設(shè)計(jì)教程1.3VisualStudio集成開發(fā)環(huán)境2.開發(fā)環(huán)境(3)解決方案資源管理器
一個(gè)大型程序的開發(fā)過程會(huì)包括很多資源,包括源代碼、圖片、文件數(shù)據(jù)庫等等,也可能包括很多功能模塊,如數(shù)據(jù)庫處理模塊、圖形用戶界面(GraphicUserInterface,GUI)模塊、業(yè)務(wù)邏輯處理模塊等等。如果沒有一種有效的組織方式來管理這些項(xiàng)目資源,就不能高效的開發(fā)出大型應(yīng)用程序,在后期甚至?xí)霈F(xiàn)各種各樣的問題,導(dǎo)致程序崩潰。
窗體設(shè)計(jì)區(qū)域的右上角是解決方案資源管理器,如果你的電腦上面看不到解決方案資源管理器,點(diǎn)擊“視圖”
“解決方案資源管理器”可以打開解決方案資源管理器。如圖1-18所示。VisualStudio2017是以解決方案和項(xiàng)目來組織資源的。解決方案就是你要?jiǎng)?chuàng)建的應(yīng)用程序,應(yīng)用程序下的各個(gè)模塊可以建立成一個(gè)個(gè)的項(xiàng)目。解決方案和項(xiàng)目還可以包含一些項(xiàng),這些項(xiàng)表示創(chuàng)建應(yīng)用程序所需的引用、數(shù)據(jù)連接、文件夾和文件。一個(gè)解決方案可包含多個(gè)項(xiàng)目,而一個(gè)項(xiàng)目通常包含多個(gè)項(xiàng)。項(xiàng)目和項(xiàng)目以及項(xiàng)目和解決方案之間的連接可以通過解決方案管理器和命名空間來管理。解決方案資源管理器用于顯示解決方案、解決方案的項(xiàng)目及這些項(xiàng)目中的項(xiàng)。通過解決方案資源管理器可以打開文件進(jìn)行編輯,向項(xiàng)目中添加新文件,以及查看解決方案、項(xiàng)目和項(xiàng)屬性。
22十月2025C#程序設(shè)計(jì)教程1.3VisualStudio集成開發(fā)環(huán)境2.開發(fā)環(huán)境(4)屬性窗口VisualStudio2017的每一個(gè)對(duì)象都有自己的特征集,用來唯一的標(biāo)識(shí)它自己,這個(gè)特征集稱為“屬性”。圖1-19就是VisualStudio2017的屬性窗口。窗體設(shè)計(jì)區(qū)域的右下角是屬性窗口,如果你的電腦上面看不到屬性窗口,點(diǎn)擊“視圖”
“屬性窗口”可以打開屬性窗口。
屬性窗口列出了當(dāng)前選中內(nèi)容的各種屬性,可以在屬性窗口中對(duì)這些屬性值進(jìn)行修改。當(dāng)在解決方案管理器中或者窗體設(shè)計(jì)視圖中選擇一個(gè)文件或者控件時(shí),屬性窗口會(huì)自動(dòng)隨之發(fā)生變化,以顯示當(dāng)前選擇內(nèi)容的屬性。屬性窗口的最上部是一個(gè)下拉列表框,顯示當(dāng)前選中的是什么內(nèi)容??梢詮南吕斜砜蜻x擇其他項(xiàng),以更改屬性窗口鎖顯示的內(nèi)容。下拉列表框下面是工具欄。工具欄下面是屬性列表,列出了當(dāng)前所選擇內(nèi)容的所有屬性。屬性窗口最下面是對(duì)屬性列表中當(dāng)前選擇的屬性的文字說明。(5)其他窗口
除了上面介紹的窗口外,VisualStudio2017中還有一些會(huì)經(jīng)常用到的窗口,如錯(cuò)誤列表窗口,這些錯(cuò)誤可以包含不正確的語法、拼錯(cuò)的關(guān)鍵字和鍵入不匹配。錯(cuò)誤列表窗口將顯示這些錯(cuò)誤類型。錯(cuò)誤列表窗口對(duì)于程序的調(diào)試至關(guān)重要.
22十月2025C#程序設(shè)計(jì)教程1.3VisualStudio集成開發(fā)環(huán)境3.窗口布局調(diào)整VisualStudio20XX允許對(duì)IDE中眾多子窗口進(jìn)行調(diào)整、合并,從而定制出符合用戶使用習(xí)慣的IDE布局。(1)窗口自動(dòng)隱藏默認(rèn)情況下,VisualStudio20XXIDE整個(gè)用戶界面被劃分為若干個(gè)區(qū)域。這種布局在編寫代碼或者設(shè)計(jì)大窗體時(shí)不太方便,因?yàn)橛脩艟庉媴^(qū)域的寬度不足以顯示一行完整的代碼或者整個(gè)窗體時(shí),必須不斷拖動(dòng)滾動(dòng)條調(diào)整位置,才能查看完整的代碼和窗體布局。利用VisualStudio20XX提供的窗口自動(dòng)隱藏功能,可以隱藏工具箱、解決方案資源管理器、屬性及其他窗口,從而擴(kuò)大用戶編輯區(qū)域。工具箱、解決方案資源管理器、屬性及其他窗口的右上角都有一個(gè)圖釘圖標(biāo),點(diǎn)擊這個(gè)按鈕,可以在自動(dòng)隱藏和不自動(dòng)隱藏之間切換。窗口自動(dòng)隱藏后,僅在界面上顯示一個(gè)圖標(biāo)。(2)窗口位置調(diào)整除了可以設(shè)置為自動(dòng)隱藏,還可以改變窗口所在的位置,左鍵點(diǎn)擊任意窗口的標(biāo)題欄,拖動(dòng)到任意位置釋放鼠標(biāo),窗口的位置即發(fā)生調(diào)整。當(dāng)希望恢復(fù)為默認(rèn)窗口布局,點(diǎn)擊“窗口”
“重置窗口布局”即可。22十月2025C#程序設(shè)計(jì)教程1.3VisualStudio集成開發(fā)環(huán)境4.獲得幫助VisualStudio的幫助文檔包含在MSDNLibrary中,可以將MSDNLibrary安裝在本地計(jì)算機(jī)上,也可以從Internet
上獲得。該庫的本地版本是格式為.hxs的壓縮HTML文件的集合,你可以決定是否在計(jì)算機(jī)上安裝該庫的全部或部分內(nèi)容。
F1提供區(qū)分上下文的搜索功能。在代碼編輯器中,將光標(biāo)定位于關(guān)鍵字或類成員上或緊隨其后,并按F1,即可訪問C#關(guān)鍵字和.NETFramework類的幫助文檔。當(dāng)控件具有焦點(diǎn)時(shí),可以按F1獲取該控件的幫助。22十月2025C#程序設(shè)計(jì)教程1.4創(chuàng)建第一個(gè)C#控制臺(tái)程序1.點(diǎn)擊菜單“文件”
“新建”
“項(xiàng)目”。將出現(xiàn)“新建項(xiàng)目”對(duì)話框。2.選擇“控制臺(tái)應(yīng)用”作為項(xiàng)目類型,并將應(yīng)用程序的名稱更改為“Hello”。3.現(xiàn)在單擊Main方法內(nèi)的左大括號(hào)“{”的右邊,然后按Enter鍵開始新行。注意觀察編輯器如何自動(dòng)縮進(jìn)光標(biāo)。鍵入單詞“console4.鍵入一個(gè)點(diǎn)和方法名WriteLine。5.鍵入一個(gè)左括號(hào)。6.鍵入字符串“歡迎使用控制臺(tái)應(yīng)用程序”鍵入字符串時(shí)用雙引號(hào)(英文輸入法的雙引號(hào))將字符串引起來,然后添加一個(gè)右括號(hào)(英文輸入法下的右括號(hào))。將看到顯示一條紅色波浪下劃線,提醒您缺少某些符號(hào)。鍵入一個(gè)分號(hào)”;”(英文輸入法下的分號(hào))7.運(yùn)行程序。22十月2025C#程序設(shè)計(jì)教程1.5創(chuàng)建第一個(gè)C#Windows程序1.點(diǎn)擊菜單“文件”
“新建”
“項(xiàng)目”。將出現(xiàn)“新建項(xiàng)目”對(duì)話框。選擇“Windows窗體應(yīng)用”作為項(xiàng)目類型,并將應(yīng)用程序的名稱更改為“Button”。2.在Windows窗體設(shè)計(jì)器中會(huì)顯示一個(gè)Windows窗體。這是應(yīng)用程序的用戶界面。3.展開“公共控件”選項(xiàng)卡,并用左鍵選中“Label”控件,按住左鍵拖動(dòng)到窗體的合適位置。4.以同樣的方式放置一個(gè)“Button”控件到窗體的合適位置。5.雙擊按鈕以打開代碼編輯器,為此方法添加代碼,添加后效果如下:privatevoidbutton1_Click(objectsender,EventArgse){
label1.Text="Hello,World!";}6.按F5以編譯并運(yùn)行應(yīng)用程序。7.單擊按鈕時(shí),將顯示一條文本消息。
22十月2025C#程序設(shè)計(jì)教程1.6C#程序結(jié)構(gòu)簡介1.namespace命令namespace命令定義了一個(gè)命名空間。命名空間是一個(gè)類的集合,其中包含一些按照某種關(guān)系(一般是邏輯關(guān)系)組織在一起的類。命名空間可以嵌套,即命名空間中還可以包含別的命名空間,命名空間的引入是為了避免類的命名沖突。通過把類放在namespace里面,這個(gè)類名就自動(dòng)具有了一個(gè)與命名空間名字相同的前綴,這個(gè)類的完整類名就變成了namespace.classname的形式。通過把相同類名的類放在不同的命名空間中,就有效的避免了命名沖突。在編程時(shí),通過指定完整類名(命名空間.類名)就可以明確無歧義的確定唯一的類。22十月2025C#程序設(shè)計(jì)教程1.6C#程序結(jié)構(gòu)簡介2.using命令通過使用命名空間,解決了命名沖突的問題,但是也給編程工作帶來一些不便:在使用一個(gè)類時(shí),需要把類的命名空間放在類名的前面做為前綴,這樣就增加了編碼工作量。尤其是在有些命名空間層次很多的情況下,更是顯著增加了編程人員的輸入代碼工作量。通過using命令可以很好的解決這個(gè)問題,using指定的作用是導(dǎo)入一個(gè)命名空間。導(dǎo)入一個(gè)命名空間以后,就可以直接通過類名使用這個(gè)命名空間里面的類,而不必寫完整類名。在Hello程序中,Console類是定義在System命名空間中的,如果沒有第一行的usingSystem指令,那么在使用Console類時(shí),必須寫成System.Console的形式。22十月2025C#程序設(shè)計(jì)教程1.6C#程序結(jié)構(gòu)簡介3.程序注釋程序中加入注釋是為了程序更加清晰可讀。注釋是給開發(fā)、調(diào)試和維護(hù)程序的人看的,而不是用來執(zhí)行以達(dá)到某個(gè)效果的,注釋不會(huì)被編譯,更不會(huì)執(zhí)行。下面是一個(gè)簡單的注釋的例子://這是一個(gè)單行注釋實(shí)際編程中,用的更多的是選中你希望注釋的代碼,通過工具欄上的按鈕將選中代碼注釋掉,通過將選中代碼取消注釋,22十月2025C#程序設(shè)計(jì)教程1.6C#程序結(jié)構(gòu)簡介4.Main函數(shù)Main函數(shù)時(shí)C#程序的入口點(diǎn),C#程序運(yùn)行時(shí),不管是Windows窗體應(yīng)用程序還是控制臺(tái)應(yīng)用程序,將從Main函數(shù)開始執(zhí)行。Main函數(shù)必須被聲明為靜態(tài)的。根據(jù)返回類型和入口參數(shù)的不同,Main函數(shù)可以有以下幾種形式:staticvoidMain()staticvoidMain(string[]args)staticintMain()staticintMain(string[]args)可以看出,Main函數(shù)有兩種返回類型:void類型和int類型;Main函數(shù)可以沒有入口參數(shù),也可以接受字符串?dāng)?shù)組作為參數(shù)。22十月2025C#程序設(shè)計(jì)教程1.6C#程序結(jié)構(gòu)簡介5.Console類的用法Console類位于命名空間System,它為控制臺(tái)程序提供了最基本的輸入、輸出方法,其中最常用的包括WriteLine、Write、ReadLine和Read,講解過程涉及到變量的有關(guān)知識(shí)請(qǐng)參考第二章。(1)Console.ReadLine和Console.ReadReadLine方法用于從標(biāo)準(zhǔn)輸入設(shè)備(通常是鍵盤)輸入一行字符(以回車表示結(jié)束),返回的結(jié)果是string(字符串)類型數(shù)據(jù),如下所示:strings=Console.ReadLine();上面的語句將從鍵盤輸入一行字符賦給string(字符串)型變量s。注意:Console.ReadLine()的返回結(jié)果只能是字符串,如果需要數(shù)值,則可以將字符串s通過Convert類的方法轉(zhuǎn)換為相應(yīng)的數(shù)值,請(qǐng)參考第二章。22十月2025C#程序設(shè)計(jì)教程1.6C#程序結(jié)構(gòu)簡介Console.Read方法也是從標(biāo)準(zhǔn)輸入設(shè)備(通常是鍵盤)輸入字符,不過它只接收一個(gè)字符,并且返回的結(jié)果是一個(gè)int型數(shù)值,即該字符的ASCII碼。例如:intn=Console.Read();charc=Convert.ToChar(n);上面的代碼中,先將輸入的字符的ASCII碼賦給int型的變量n再通過Convert.ToChar進(jìn)行轉(zhuǎn)換,最終將輸入的字符賦給char(字符)型變量c。22十月2025C#程序設(shè)計(jì)教程1.6C#程序結(jié)構(gòu)簡介(2)Console.WriteLine和Console.WriteConsole.WriteLine和Console.Write方法均用于在標(biāo)準(zhǔn)輸出設(shè)備(一般是屏幕)上輸出文本(即字符串),兩者的區(qū)別在于Console.WriteLine輸出后自動(dòng)加一個(gè)回車換行,而Console.Write不自動(dòng)換行。Console.WriteLine和Console.Write方法可輸出的數(shù)據(jù)包括字符、字符串、整型數(shù)據(jù)和實(shí)型數(shù)據(jù)等多種不同數(shù)據(jù)。22十月2025C#程序設(shè)計(jì)教程1.6C#程序結(jié)構(gòu)簡介(3)格式化輸出Console.WriteLine和Console.Write方法還可以輸出格式化信息,格式如下:Console.WriteLine(格式化字符串,輸出對(duì)象1,輸出對(duì)象2,………);Console.Write(格式化字符串,輸出對(duì)象1,輸出對(duì)象2,………);其中,格式化字符串的常用格式為:“…{0}….{1}…..”,{0}與輸出對(duì)象1的內(nèi)容相對(duì)應(yīng),{1}與輸出對(duì)象2的內(nèi)容相對(duì)應(yīng),…,其他內(nèi)容按原樣輸出。例如:inta=10;strings=”hello”;Console.WriteLine(”s={0},a={1}”,s,a);執(zhí)行以上代碼后,輸出結(jié)果為:s=hello,a=10也可以使用Console.WriteLine(”s=”+s+”,a=”+a)實(shí)現(xiàn)同樣的功能。22十月2025C#程序設(shè)計(jì)教程1.6C#程序結(jié)構(gòu)簡介6.簡單的程序調(diào)試過程在開發(fā)應(yīng)用程序的過程中,尤其當(dāng)程序出現(xiàn)錯(cuò)誤或者未得到預(yù)期的結(jié)果時(shí),經(jīng)常需要進(jìn)行調(diào)試,以便找出問題所在,作為一個(gè)優(yōu)秀的集成開發(fā)環(huán)境,VS2017在調(diào)試方面的功能也非常強(qiáng)大,VS2017的調(diào)試器可以以高度可視化的方式顯示調(diào)試中的程序信息,還可以設(shè)置條件斷點(diǎn)。第2章C#的基本語法22十月2025C#程序設(shè)計(jì)教程第2章C#的基本語法2.1注釋2.2標(biāo)識(shí)符2.3變量和常量2.4數(shù)據(jù)類型2.5類型轉(zhuǎn)換2.6字符串2.7運(yùn)算符C#的注釋方式可以使用雙斜杠//和/*…*/進(jìn)行注釋。雙斜杠//為單行注釋,只用于單行語句的注釋。/*…*/用于多行注釋,可以注釋多行語句。2.1注釋在程序中會(huì)用到各種對(duì)象,如符號(hào)常量、變量、數(shù)組、類、方法和類型等,為了識(shí)別這些對(duì)象,必須給每個(gè)對(duì)象一個(gè)名稱,我們稱為標(biāo)識(shí)符。標(biāo)識(shí)符是用戶定義的一種字符序列。2.2標(biāo)識(shí)符C#語言的標(biāo)識(shí)符名稱必須遵守以下規(guī)則:(1)所有的標(biāo)識(shí)符只能由字母、數(shù)字和下劃線這三類字符組成,而且第一個(gè)字符必須為字母或下劃線(不能以數(shù)字開頭);(2)標(biāo)識(shí)符中不能包含空格、標(biāo)點(diǎn)符號(hào)、運(yùn)算符等其他符號(hào);(3)標(biāo)識(shí)符區(qū)分大小寫;(4)標(biāo)識(shí)符不能與C#關(guān)鍵字名相同。(5)標(biāo)識(shí)符不能與C#中的類庫名相同。(6)關(guān)鍵字(Keyword)也稱為保留字,它是由系統(tǒng)預(yù)先定義好的標(biāo)識(shí)符,在C#語言中有特定的含義。2.2標(biāo)識(shí)符22十月2025VisualC#2008程序設(shè)計(jì)1.變量程序需要對(duì)數(shù)據(jù)進(jìn)行讀、寫、運(yùn)算等操作。當(dāng)需要保存特定的值或計(jì)算結(jié)果時(shí),就需要用到變量(Variable)。變量是計(jì)算機(jī)內(nèi)存中被命名的數(shù)據(jù)存儲(chǔ)單元,其中存儲(chǔ)的值是可以改變的。
變量名實(shí)際上是一個(gè)符號(hào)地址,在對(duì)程序進(jìn)行編譯時(shí)由系統(tǒng)給每個(gè)變量分配一個(gè)真正的內(nèi)存地址。在程序中通過變量取值,實(shí)際上就是通過變量名找到相應(yīng)的內(nèi)存地址,再從中讀取數(shù)據(jù)或存入數(shù)據(jù)。2.3常量和變量(1)變量命名①變量名最好以小寫字母開頭;②變量名應(yīng)具有描述性質(zhì):選取有意義的字符序列作為變量名,以便在程序中能從變量名中理解所標(biāo)識(shí)的對(duì)象,從而便于閱讀和記憶。③在包含多個(gè)單詞的變量名中,從第二個(gè)單詞開始,每個(gè)單詞都采取首字母大寫的形式。2.3常量和變量(2)變量的定義與使用在C#中,使用變量的基本原則是:必須先定義(聲明)后使用。在定義一個(gè)變量時(shí),必須指定其所儲(chǔ)存的數(shù)據(jù)的類型。定義變量的一般格式為: 數(shù)據(jù)類型變量名;例如:
intcount;//定義了一個(gè)存放整數(shù)的變量count bytea,b,c;//定義了三個(gè)存放8位無符號(hào)整數(shù)的變量a、b、c2.3常量和變量
變量在程序運(yùn)行中可以通過表達(dá)式來賦值。變量賦值的一般格式為:變量名=表達(dá)式;例如: a=b+5;
在程序中,可以給一個(gè)變量多次賦值,變量的當(dāng)前值等于最后一次給該變量所賦的值。
此外,也可以在定義變量時(shí)為其賦值,我們稱為變量的初始化。例如: intcount=5;inta=3,b=4,c=5;22十月2025在程序中,可以給一個(gè)變量多次賦值,變量的當(dāng)前值等于最后一次給該變量所賦的值。此外,也可以在定義變量時(shí)為其賦值,我們稱為變量的初始化。(1)inta;a=1;//先定義再賦值(2)inta=1;//定義的時(shí)候就賦值22十月20252.常量常量(Constant)是指在程序執(zhí)行過程中其值不能被改變的量。同變量一樣,常量也用來存儲(chǔ)數(shù)據(jù)。它們的區(qū)別在于,常量一旦初始化就不再發(fā)生變化,可以理解為符號(hào)化的常數(shù)。常量的聲明和變量類似,需要指定其數(shù)據(jù)類型、常量名,以及初始值,并需要使用const關(guān)鍵字。定義常量的格式為(定義的時(shí)候必須賦值):const數(shù)據(jù)類型常量名=表達(dá)式;例如: constdoublePI=3.1415;//用常量PI來代替3.1415926
2.3常量和變量數(shù)據(jù)類型定義了數(shù)據(jù)的性質(zhì)、表示、存儲(chǔ)空間的結(jié)構(gòu)。C#的數(shù)據(jù)類型可分為值類型和引用類型。2.4數(shù)據(jù)類型有符號(hào)整數(shù):sbyte,short,int,long無符號(hào)整數(shù):byte,ushort,uint,ulong字符:char浮點(diǎn)數(shù):float,double十進(jìn)制數(shù):decimal布爾值:bool枚舉類型enumE{...}結(jié)構(gòu)類型
structS{...}類classStudent{…}22十月2025數(shù)據(jù)類型2.4.1值類型C#的值類型可以分為三種:簡單數(shù)據(jù)類型、結(jié)構(gòu)類型(Struct)和枚舉類型(Enumeration)。1.簡單類型簡單數(shù)據(jù)類型可用于表示簡單數(shù)據(jù),可以分為整型、浮點(diǎn)型、十進(jìn)制類型、布爾型和字符型,用于表示整數(shù)、小數(shù)、字符以及邏輯值等。2.4數(shù)據(jù)類型(1)整數(shù)類型C#中有8種整數(shù)類型,包括有符號(hào)字節(jié)型(sbyte)、字節(jié)型(byte)、短整型(short)、無符號(hào)短整型(ushort)、整型(int)、無符號(hào)整型(uint)、長整型(long)和無符號(hào)長整型(ulong)。2.4數(shù)據(jù)類型22十月2025(2)浮點(diǎn)類型C#中的浮點(diǎn)型包含單精度浮點(diǎn)型(float)和雙精度浮點(diǎn)型(double)兩種,精度為小數(shù)位,它們的差別在于取值范圍和精度不同。需要注意的是,一個(gè)浮點(diǎn)型常量(簡單的說就是帶小數(shù)點(diǎn)的數(shù)),在C#中默認(rèn)類型為double。若在浮點(diǎn)型常量后加上一個(gè)字符f(或F),則表示它為float型。例如: doublef1=2.5; floatf2=2.3f;最常見的錯(cuò)誤:floatf=2.3;2.3默認(rèn)為double類型占64位,將f賦值給float類型(32位)會(huì)報(bào)錯(cuò)。2.4數(shù)據(jù)類型22十月2025(3)十進(jìn)制類型
十進(jìn)制類型(decimal)主要用于在金融和貨幣方面的計(jì)算,它的精度是位數(shù)(digits)而不是小數(shù)位。使用decimal類型可以避免浮點(diǎn)計(jì)算誤差造成的困擾。對(duì)十進(jìn)制類型的數(shù)據(jù)使用后綴符m以表明它是一個(gè)十進(jìn)制類型,如0.1m、123.6m等。如果省略了m,將被C#編譯器當(dāng)做雙精度浮點(diǎn)型(double)來處理。同浮點(diǎn)類型相比,十進(jìn)制類型具有更高的精度和更小的取值范圍。22十月202522十月2025VisualC#2008程序設(shè)計(jì)(4)布爾類型布爾類型表示現(xiàn)實(shí)中的“真”或“假”這兩個(gè)概念,主要用來進(jìn)行邏輯判斷。在C#中,分別采用true和false這兩個(gè)值來表示“真”和“假”。boola=true;在賦值時(shí),注意不要為true或者false加上雙引號(hào)。2.4數(shù)據(jù)類型(5)字符類型(char)字符型數(shù)據(jù)用來表示單個(gè)字符,包括數(shù)字字符、英文字母、表達(dá)符號(hào)、中文等。C#提供的字符類型采用了國際上公認(rèn)的Unicode標(biāo)準(zhǔn)字符集,一個(gè)Unicode的標(biāo)準(zhǔn)字符長度為16位。C#的字符型數(shù)據(jù)必須是用單引號(hào)括起來的單個(gè)字符,如'A','0'等都是字符型數(shù)據(jù)。C#中,字符屬于基本數(shù)據(jù)類型,字符串卻是一個(gè)對(duì)象,因此,像chars="A";是非法的。因?yàn)槠渲?A"不是字符,而是一個(gè)字符串對(duì)象。chars='A';才是正確的賦值形式。22十月2025在C#中,還有一種特殊的字符常量,它是以反斜杠"\"開頭的字符序列,稱之為轉(zhuǎn)義字符。轉(zhuǎn)義字符具有特定的含義,不同于字符原有的意義,故稱“轉(zhuǎn)義”。比如定義一個(gè)字符,而這個(gè)字符是單引號(hào),如果不使用轉(zhuǎn)義字符,則會(huì)產(chǎn)生錯(cuò)誤。chara=''';//錯(cuò)誤chara=‘\'';//正確22十月202522十月20252.枚舉類型當(dāng)在程序設(shè)計(jì)中需要定義一些具有賦值范圍的變量(如星期、月份等)時(shí),可以用枚舉類型來定義。枚舉將變量所能賦的值一一列舉出來,給出一個(gè)具體的范圍。枚舉類型用關(guān)鍵字enum說明,定義如下: enum枚舉名
{
枚舉常量1[=整型常數(shù)],
枚舉常量2[=整型常數(shù)],...
枚舉常量n[=整型常數(shù)],};2.4數(shù)據(jù)類型為枚舉類型的元素所賦的值的數(shù)據(jù)類型限于long、int、short和byte等整數(shù)類型。枚舉定義中的整型常數(shù)可以省略,如果省略則枚舉常量的值依次為0、1、…、n-1,依次遞增。例如,有以下枚舉類型定義: enumSeason{Spring,Summer,Autumn,Winter};則Spring對(duì)應(yīng)整數(shù)0,Summer對(duì)應(yīng)整數(shù)1,Autumn對(duì)應(yīng)整數(shù)2,Winter對(duì)應(yīng)整數(shù)3。22十月2025C#還規(guī)定,在定義枚舉類型的同時(shí)可以給枚舉常量賦初值,如: enumSeason{Spring,Summer=2,Autumn,Winter};則Spring對(duì)應(yīng)整數(shù)0,Summer對(duì)應(yīng)整數(shù)2,Autumn對(duì)應(yīng)整數(shù)3,Winter對(duì)應(yīng)整數(shù)4。定義了枚舉型變量后,可以給枚舉型變量賦值,需要注意的是,只能給枚舉型變量賦枚舉常量,或把相應(yīng)的整數(shù)強(qiáng)制轉(zhuǎn)換為枚舉類型再賦值。例如: enumSeason{Spring,Summer,Autumn,Winter};SeasoncurrentSeason=Season.Autumn;currentSeason=(Season)2;22十月20253.結(jié)構(gòu)類型結(jié)構(gòu)體是一種復(fù)合的數(shù)據(jù)類型,它允許用其它數(shù)據(jù)類型構(gòu)成一個(gè)結(jié)構(gòu)類型,而一個(gè)結(jié)構(gòu)類型變量內(nèi)的所有數(shù)據(jù)可以作為一個(gè)整體進(jìn)行處理。結(jié)構(gòu)體的定義形式如下:
struct結(jié)構(gòu)體標(biāo)識(shí)名
{ public類型成員變量名1; public類型成員變量名2; public類型成員變量名3; …};2.4數(shù)據(jù)類型例如,可以像下面這樣定義立方體的結(jié)構(gòu)類型:structCube{ publicintlength; publicintwith; publicintheight;};Cubecb1;上面的代碼中,cb1就是一個(gè)名為Cube的立方體結(jié)構(gòu)類型的變量。結(jié)構(gòu)成員的引用方式是通過“.”運(yùn)算符來進(jìn)行。如下所示:
結(jié)構(gòu)體變量.成員名若要給cb1的length成員賦值15,可使用如下語句:cb1.length=15;22十月20252.4.2引用類型 在內(nèi)存中不直接存儲(chǔ)引用類型的數(shù)據(jù),而是存儲(chǔ)該數(shù)據(jù)的地址,由此可以索引到所需的數(shù)據(jù)。引用類型包括類(class)、接口(interface)、數(shù)組(array)、字符串(string)和委托(delegate)等,我們將在后面的章節(jié)中詳細(xì)介紹這些類型。2.4數(shù)據(jù)類型2.4.3隱含類型C#語言是一種強(qiáng)類型的語言,以前在聲明變量的同時(shí),必須顯式指出該變量的類型,否則將會(huì)出現(xiàn)編譯錯(cuò)誤,從C#3.0開始,在聲明一個(gè)變量的同時(shí),可以不具體說明該變量的類型,而可以聲明為var類型。用var來聲明任何類型局部變量時(shí),它只告訴編譯器該變量需要初始化來推斷變量的類型,并且只能是局部變量。2.4數(shù)據(jù)類型vari=2;//等同于inti=2;varh=23.56;//等同于doubleh=23.56;varname="Good";//等同于stringname="Good";varnumbers=newint[]{1,2,3};//等同于int[]numbers=newint[]{1,2,3}22十月2025根據(jù)規(guī)則,下面就是一些錯(cuò)誤的使用var的情況:(1)使用var申明局部變量時(shí),一定要賦值,因?yàn)槁暶饕蕾囉谫x值號(hào)右邊的表達(dá)式,否則編譯器會(huì)報(bào)錯(cuò);例如:varx;//錯(cuò)誤,因?yàn)闆]有給變量初始值(2)使用var申明局部變量后,它仍然是強(qiáng)類型,不可以進(jìn)行轉(zhuǎn)換;例如:varnumber=19;number="Thisiserror!"http://此時(shí)就會(huì)報(bào)錯(cuò)(3)初始化表達(dá)式的編譯期類型不可以是空(null),因?yàn)榫幾g器無法從null來推斷出局部變量的類型。例如:varz=null;//錯(cuò)誤,初始化的值不能是null22十月2025在表達(dá)式中,當(dāng)混合使用不同類型的數(shù)據(jù)時(shí),需要對(duì)數(shù)據(jù)類型進(jìn)行轉(zhuǎn)換。C#語言中數(shù)據(jù)類型的轉(zhuǎn)換可以分為兩類:自動(dòng)類型轉(zhuǎn)換和強(qiáng)制類型轉(zhuǎn)換。2.5.1自動(dòng)類型轉(zhuǎn)換在C#中在運(yùn)算時(shí)會(huì)對(duì)數(shù)據(jù)類型將自動(dòng)進(jìn)行轉(zhuǎn)換,自動(dòng)類型轉(zhuǎn)換是系統(tǒng)默認(rèn)的、不需要任何聲明就可以進(jìn)行的轉(zhuǎn)換,它是由編譯器根據(jù)不同類型數(shù)據(jù)間轉(zhuǎn)換規(guī)則自動(dòng)完成的,又稱為隱式類型轉(zhuǎn)換。自動(dòng)轉(zhuǎn)換遵守“由低級(jí)類型向高級(jí)類型轉(zhuǎn)換,結(jié)果為高級(jí)類型”的原則,從而保證計(jì)算精度。2.5類型轉(zhuǎn)換22十月2025自動(dòng)數(shù)值轉(zhuǎn)換實(shí)際上就是從低精度的數(shù)值類型到高精度的數(shù)值類型的轉(zhuǎn)換。從表中可以看出,不存在到char類型的自動(dòng)轉(zhuǎn)換,這意味著其他整數(shù)類型不能自動(dòng)轉(zhuǎn)換為char類型。在數(shù)據(jù)類型進(jìn)行自動(dòng)轉(zhuǎn)換時(shí),按以下規(guī)則進(jìn)行:(1)在非賦值運(yùn)算中,進(jìn)行運(yùn)算前,先對(duì)運(yùn)算符兩邊的操作數(shù)類型進(jìn)行比較,將兩個(gè)操作數(shù)都轉(zhuǎn)換為同一數(shù)據(jù)類型,再進(jìn)行計(jì)算。這種轉(zhuǎn)換時(shí)向上的,即char、short都轉(zhuǎn)換為int型,int型轉(zhuǎn)換為unsigned型,unsigned型轉(zhuǎn)換為long型,long和float都轉(zhuǎn)換為double型。(2)在賦值運(yùn)算中,右邊的數(shù)值將轉(zhuǎn)換為與左邊變量相同的數(shù)據(jù)類型,再將其賦予左邊的變量。需要注意的是,如果右邊的數(shù)值超過左邊變量所能表達(dá)的數(shù)值范圍,則將對(duì)其進(jìn)行適當(dāng)?shù)慕厝√幚砗笤龠M(jìn)行賦值。22十月20252.5.2強(qiáng)制類型轉(zhuǎn)換強(qiáng)制類型轉(zhuǎn)換就是強(qiáng)制執(zhí)行從一種數(shù)據(jù)類型到另一種數(shù)據(jù)類型的轉(zhuǎn)換,因此也稱為顯式類型轉(zhuǎn)換,一般用強(qiáng)制類型轉(zhuǎn)換符來實(shí)現(xiàn)。C#語言提供了一個(gè)類型轉(zhuǎn)換運(yùn)算符用于對(duì)數(shù)據(jù)類型進(jìn)行強(qiáng)制轉(zhuǎn)換,類型轉(zhuǎn)換運(yùn)算符用圓括號(hào)“()”表示,其使用格式如下:
(類型名)變量或表達(dá)式2.5類型轉(zhuǎn)換例如: inti; floatj=4.5f; i=(int)j;強(qiáng)制數(shù)值轉(zhuǎn)換是指當(dāng)不存在相應(yīng)的隱式數(shù)值轉(zhuǎn)換時(shí),從一種數(shù)值類型到另一種數(shù)值類型的轉(zhuǎn)換。需要注意的是,類型轉(zhuǎn)換運(yùn)算符“()”在對(duì)變量進(jìn)行強(qiáng)制轉(zhuǎn)換時(shí),僅對(duì)變量的值的類型進(jìn)行轉(zhuǎn)換,而不是轉(zhuǎn)換變量本身的類型。22十月2025與隱式類型轉(zhuǎn)換相比,顯式類型轉(zhuǎn)換不一定總成功,有可能會(huì)造成數(shù)據(jù)信息的丟失或產(chǎn)生異常。inta=5;intb=2;doublec=a/b;Console.WriteLine(c);的結(jié)果會(huì)是多少呢?你誤認(rèn)為程序?qū)⑤敵?.5。然而,事實(shí)并非如此。a為int類型,b也為int類型,所以a/b是int/int的形式,所以所得的結(jié)果一定也是int類型。a/b的將得到結(jié)果值,因此最終的2,整型值2又被賦給了雙精度變量c,所以最終雙精度變量c中存放的是2.0.請(qǐng)大家自行驗(yàn)證。22十月2025那么我們?cè)趺礃硬拍苁筩中的值是2.5呢?此問題的解決方法就是使用強(qiáng)制類型轉(zhuǎn)換:請(qǐng)看以下代碼:inta=5;intb=2;doublec=(double)a/b;//第三行Console.WriteLine(c);(double)a將a轉(zhuǎn)換為了雙精度數(shù),如下所示:doublec=5.0/b;5.0/b是double/int形式,其結(jié)果當(dāng)然是雙精度型了。所以,上述代碼會(huì)繼續(xù)演變成下面的形式。doublec=2.5;如果我們想得到精確的計(jì)算結(jié)果值,那么請(qǐng)像第三行那樣書寫代碼。否則,程序運(yùn)行后就會(huì)輸出我們意想不到的結(jié)果。所以,我們不論在讀別人編寫的程序,還是自己編寫程序時(shí),都必須時(shí)時(shí)刻刻留心數(shù)據(jù)類型的轉(zhuǎn)換。22十月2025前面的章節(jié)中介紹了char類型,它只能表示單個(gè)字符,不能表示由多個(gè)字符連接而成的字符串。在C#語言中字符串作為對(duì)象來處理,可以通過string類來創(chuàng)建字符串對(duì)象。
在C#語言中,字符串必須包含在一對(duì)""(雙引號(hào))之內(nèi)。例如:“12.12”、“abcd”、“武漢”這些都是字符串常量,在輸出時(shí),雙引號(hào)內(nèi)的內(nèi)容原樣輸出(雙引號(hào)不會(huì)輸出)
使用
“+”運(yùn)算符可完成多個(gè)字符串的連接功能,也可以實(shí)現(xiàn)字符串常量和變量的連接。
strings1=Console.ReadLine();//從控制行讀取一行字符串賦值給s1strings2=",歡迎你進(jìn)入";strings3="武漢軟件工程職業(yè)學(xué)院";Console.WriteLine(s1+s2+s3);
22十月2025string對(duì)象與基本數(shù)據(jù)類型的數(shù)據(jù)可以進(jìn)行"+"運(yùn)算,其運(yùn)算結(jié)果值為一個(gè)string型的對(duì)象,即"字符串+整數(shù)(浮點(diǎn)數(shù))=字符串"。inta=5,b=7;Console.WriteLine(a+b);//結(jié)果為12,兩個(gè)int數(shù)做運(yùn)算Console.WriteLine(""+a+b);//結(jié)果為57,字符串+整數(shù)=字符串22十月20252.5.3字符串與基本數(shù)據(jù)類型間的轉(zhuǎn)換(基本數(shù)據(jù)類型間的轉(zhuǎn)換)System.Convert類位于命名空間System,它為數(shù)據(jù)轉(zhuǎn)換提供了一整套方法,可以將一個(gè)基本數(shù)據(jù)類型轉(zhuǎn)換為另一個(gè)基本數(shù)據(jù)類型。使用Convert類的方法可以方便的執(zhí)行自動(dòng)、強(qiáng)制數(shù)據(jù)類型轉(zhuǎn)換的功能,以及不相關(guān)數(shù)據(jù)類型的轉(zhuǎn)換。2.5類型轉(zhuǎn)換在數(shù)據(jù)類型轉(zhuǎn)換時(shí),可以將要轉(zhuǎn)換的值傳遞給Convert類中的某一相應(yīng)方法,并將返回的值賦給目標(biāo)變量。例如:charc='A';inta=Convert.ToInt16(c);//將字符'A'的ASCII碼值賦
給變量astrings="12.43";floatf=Convert.ToSingle(s);//將字符串"12.43“轉(zhuǎn)換為單精度數(shù)值12.43賦給變量f22十月202522十月2025
比較字符串并非比較字符串長度的大小,而是比較字符串在英文字典中的位置。比較字符串按照字典排序的規(guī)則,判斷兩個(gè)字符串的大小。在英文字典中,前面的單詞小于在后面的單詞。
最常見的比較字符串的方法為Compare、CompareTo、Equals方法,這些方法都屬于string類。除此以外,還可以用下一節(jié)將要學(xué)習(xí)的比較運(yùn)算符“=="來實(shí)現(xiàn)。比較字符串22十月20251、Compare方法Compare方法用來比較兩個(gè)字符串是否相等,它有很多個(gè)重載方法,其中最常用的兩種方法如下:intcompare(stringstrA,stringstrB)intcompare(stringstrA,stringstrB,boolignorCase)strA和strB:代表要比較的兩個(gè)字符串。ignorCase:是一個(gè)布爾類型的參數(shù),如果這個(gè)參數(shù)的值是true,那么在比較字符串時(shí)就忽略大小寫的差別。Compare方法是一個(gè)靜態(tài)方法,所以在使用時(shí)可以直接引用。如果strA的值與strB的值相等則返回0,strA的值大于(按字典順序,前面的為小,后面的為大)strB的值則返回1,否則返回-1。22十月20252、CompareTo方法CompareTo方法與Compare方法相似,都可以比較兩個(gè)字符串是否相等,不同的是CompareTo方法以實(shí)例對(duì)象本身與指定的字符串作比較,其語法為:intCompareTo(stringstrB)
對(duì)字符串strA和字符串strB進(jìn)行比較代碼為:strA.CompareTo(strB),返回值含義同Compare方法。3、Equals方法Equals方法主要用于比較兩個(gè)字符串是否相同,如果相同返回值是true,否則為false,其常用的兩種方式語法如下:boolEquals(stringvalue)staticboolEquals(stringstrA,stringstrB)22十月20251、子串String類提供了一個(gè)SubString方法,該方法可以截取字符串中指定位置和指定長度的子字符串,其語法格式如下:publicstringSubString(intstartIndex,intlength)startIndex:子字符串在原始字符串的起始位置索引。length:子字符串的長度。操作字符串22十月20252、插入字符串String類提供了一個(gè)Insert方法,用于向字符串的任意位置插入新的字符串,其語法格式如下:publicstringInsert(intstartIndex,stringvalue)startIndex:用于指定所要插入的位置。value:指定所要插入的字符串。操作字符串22十月20253、刪除字符串String類提供了一個(gè)Remove方法,該方法用于從一個(gè)字符串的指定位置開始,刪除指定數(shù)量的字符,其語法格式如下:publicstringRemove(intstartIndex)publicstringRemove(intstartIndex,intcount)startIndex:用于指定開始刪除的位置。count:刪除字符串的長度。此方法有兩種語法格式,第一種格式刪除字符串中從指定位置到最后位置的所有字符。第二種格式從字符串中指定位置開始刪除指定數(shù)目的字符。操作字符串22十月20254、替換字符串String類提供了一個(gè)Replace方法,該方法用于將字符串中的某個(gè)字符串替換為其他的字符串,其語法格式如下:publicstringReplace(stringoldvalue,stringnewvalue)oldvalue:待替換的字符串。newvalue:替換后新的字符串。操作字符串22十月2025
對(duì)于創(chuàng)建成功的String對(duì)象,它的長度是固定的,內(nèi)容不能被改變和編譯,每次使用String類中的方法時(shí),都要在內(nèi)存中創(chuàng)建一個(gè)新的字符串對(duì)象,這就需要為該新對(duì)象分配新的空間,在需要對(duì)字符串執(zhí)行頻繁修改的情況下,與創(chuàng)建新的String對(duì)象相關(guān)的系統(tǒng)開銷可能會(huì)非常昂貴。如果要修改字符串而不創(chuàng)建新的對(duì)象,可以使用StringBuilder類,可以大幅提高性能。StringBuilder類與String類的區(qū)別22十月20252.7.1運(yùn)算符的分類C#具有豐富的運(yùn)算符,按運(yùn)算類型可分為賦值運(yùn)算符、算術(shù)運(yùn)算符、邏輯運(yùn)算符、關(guān)系運(yùn)算符、位運(yùn)算符、指針運(yùn)算符和取成員運(yùn)算符等;按運(yùn)算對(duì)象(又稱為操作數(shù))的個(gè)數(shù)又可分為一元運(yùn)算符、二元運(yùn)算符和三元運(yùn)算符。2.7運(yùn)算符2.7.2運(yùn)算符的優(yōu)先級(jí)在構(gòu)成表達(dá)式時(shí),運(yùn)算符具有不同的優(yōu)先級(jí),還有不同的結(jié)合方式。優(yōu)先級(jí)決定不同級(jí)別的運(yùn)算符在參與運(yùn)算時(shí)的運(yùn)算次序;結(jié)合方式?jīng)Q定運(yùn)算的方向和相同優(yōu)先級(jí)的運(yùn)算符在運(yùn)算時(shí)的先后次序。當(dāng)一個(gè)操作數(shù)出現(xiàn)在兩個(gè)有相同優(yōu)先級(jí)的運(yùn)算符之間時(shí),運(yùn)算符按照出現(xiàn)的順序由左向右執(zhí)行。在C#中,除了賦值運(yùn)算符,所有的二元運(yùn)算符都是左結(jié)合的。也就是說,操作按照從左向右的順序執(zhí)行。例如,x+y+z按(x+y)+z進(jìn)行求值。賦值運(yùn)算符按照右結(jié)合的原則,即操作按照從右向左的順序執(zhí)行。例如,x=y=z按照x=(y=z)進(jìn)行求值。2.7運(yùn)算符22十月2025
需要注意的是,在復(fù)雜的表達(dá)式中,用圓括號(hào)括住的部分要先算,其優(yōu)先級(jí)高于任何運(yùn)算符。如果在寫表達(dá)式的時(shí)候無法確定運(yùn)算符的優(yōu)先順序,可以采用圓括號(hào)明確求值的順序,并使表達(dá)式更具有可讀性。22十月20252.7.3算術(shù)運(yùn)算符1.加法運(yùn)算符“+”與減法運(yùn)算符“-”2.乘法運(yùn)算符“*”與除法運(yùn)算符“/”3.求余運(yùn)算符“%”4.自增“++”和自減“––”運(yùn)算符2.7運(yùn)算符1.加法運(yùn)算符“+”與減法運(yùn)算符“-”(1)加法運(yùn)算符“+”用于將兩個(gè)操作數(shù)的值相加,并返回計(jì)算結(jié)果;減法運(yùn)算符“-”用于從第一個(gè)操作數(shù)的值中減去第二個(gè)操作數(shù)的值。(2)加法運(yùn)算符“+”與減法運(yùn)算符“-”即是雙目運(yùn)算符又是單目運(yùn)算符,作單目運(yùn)算符時(shí),運(yùn)算符“+”與“-”的實(shí)質(zhì)就是取操作數(shù)的值或負(fù)值,與數(shù)學(xué)運(yùn)算相同。2.乘法運(yùn)算符“*”與除法運(yùn)算符“/”(1)乘法運(yùn)算符“*”與除法運(yùn)算符“/”可用于整型和浮點(diǎn)型數(shù)據(jù),用法與數(shù)學(xué)運(yùn)算相同。(2)必須注意的是“/”運(yùn)算符,當(dāng)參與相除運(yùn)算的兩個(gè)操作數(shù)均為整型時(shí),其計(jì)算結(jié)果應(yīng)是除法運(yùn)算后所得商的整數(shù)部分。例如,5/2的結(jié)果是2。如果兩個(gè)操作數(shù)中有一個(gè)是浮點(diǎn)型,則結(jié)果為雙精度浮點(diǎn)型。例如,5.0/2的結(jié)果是2.5。22十月20253.求余運(yùn)算符“%”求余運(yùn)算符“%”用來求除法的余數(shù),又稱為求模運(yùn)算符。C#中的求余運(yùn)算既適用于整數(shù)類型,也同樣適用于浮點(diǎn)數(shù)類型,運(yùn)算結(jié)果是兩個(gè)操作數(shù)相除的余數(shù)。例如10%3的結(jié)果為1,5%1.5的結(jié)果為0.5。4.遞增“++”和遞減“––”運(yùn)算符單目運(yùn)算符自增(++)和自減(––)的作用是以一種緊湊格式使整型變量的值增1或減1。這兩個(gè)運(yùn)算符都有前置和后置兩種使用形式。前置形式是指運(yùn)算符在操作數(shù)的前面,后置是指運(yùn)算符在操作數(shù)的后面。例如:i++;//++后置––j;//––前置無論是前置還是后置,這兩個(gè)運(yùn)算符的作用都是使操作數(shù)的值增1或減1。例如:++i與i++的作用相當(dāng)于i=i+1;––i與i––的作用相當(dāng)于i=i–1。22十月2025這里需要注意的是:(1)自增(++)和自減(––)運(yùn)算符只能用于變量,而不能用于常量或表達(dá)式,如3++或(a+b)++都是不合法的。(2)++和––的結(jié)合性是“自右至左”。若自增(++)和自減(––)僅用于某個(gè)變量的增1和減1,則前置和后置兩種使用形式是等價(jià)的,但如果將自增(++)和自減(––)和其他運(yùn)算符組合在一起,則前置和后置兩種使用形式在求值次序上就會(huì)產(chǎn)生不同。運(yùn)算符后置用法,代表先使用變量,然后對(duì)變量增值;運(yùn)算符前置用法,代表先對(duì)變量增值,再使用變量。例如:++i,––i(在使用i參與其他運(yùn)算之前,先使i的值加(減)1)i++,i––(在使用i參與其他運(yùn)算之后,再使i的值加(減)1)22十月2025賦值就是給一個(gè)變量賦一個(gè)新值。賦值運(yùn)算用于改變變量的值,即為變量賦值。“=”運(yùn)算符用于將等號(hào)右邊的操作數(shù)(第二個(gè)操作數(shù))的值賦給左邊的操作數(shù)(第一個(gè)操作數(shù))。表達(dá)式的結(jié)果是右邊操作數(shù)的值,所以賦值操作可以串聯(lián)在一起。例如:intx,y,n;x=6;n=y=x;程序上述代碼中,先將數(shù)值6賦給變量x,再將x的值6賦給變量y。然后將變量y的值賦給變量n。賦值運(yùn)算的結(jié)果:x、y、n的值均為6。2.7.4賦值運(yùn)算符
22十月2025C#中除了提供了一個(gè)簡單賦值運(yùn)算符“=”外,還提供了多個(gè)復(fù)合賦值運(yùn)算符,包括:+=、-=、*=、/=、%=、<<=、>>=、&=、^=和|=。復(fù)合賦值運(yùn)算符是將一個(gè)其他運(yùn)算符加上簡單賦值運(yùn)算符而得到,其含義為:將左操作數(shù)和右操作數(shù)按運(yùn)算符進(jìn)行運(yùn)算,將結(jié)果的值賦給左操作數(shù)。例如:x+=10;//等價(jià)于x=x+10;y*=n;//等價(jià)于y=y*n;如果賦值操作符兩邊的操作數(shù)類型不一樣,那就先要進(jìn)行類型轉(zhuǎn)換。2.7.4賦值運(yùn)算符22十月20252.7運(yùn)算符2.7.5關(guān)系運(yùn)算符關(guān)系運(yùn)算符用于比較兩個(gè)操作數(shù)的大小,其比較的結(jié)果是一個(gè)布爾型的值。當(dāng)兩個(gè)操作數(shù)滿足關(guān)系運(yùn)算符指定的關(guān)系時(shí),表達(dá)式的值為true,否則為false。需要主要的是,“等于”關(guān)系運(yùn)算符是兩個(gè)等號(hào)“==”,不要誤用為賦值運(yùn)算符“=”;關(guān)系運(yùn)算符的優(yōu)先級(jí),低于算術(shù)運(yùn)算符,但高于賦值運(yùn)算符。運(yùn)算符描述運(yùn)算符描述==等于>大于!=不等于<=小于或等于<小于>=大于或等于2.7運(yùn)算符2.7.6位運(yùn)算符位運(yùn)算符是對(duì)其操作數(shù)按其二進(jìn)制形式逐位進(jìn)行運(yùn)算,參加位運(yùn)算的操作數(shù)必須為整型或者是可以轉(zhuǎn)換為整型的任何其他類型。位運(yùn)算符是對(duì)操作數(shù)按其在計(jì)算機(jī)內(nèi)表示的二進(jìn)制數(shù)逐位地進(jìn)行邏輯運(yùn)算。常用的4種位運(yùn)算,如下表所示。運(yùn)算符描述&AND|OR^XOR(異或)~取反22十月2025VisualC#2008程序設(shè)計(jì)22十月2025VisualC#2008程序設(shè)計(jì)22十月2025VisualC#2008程序設(shè)計(jì)2.7.7邏輯運(yùn)算符邏輯運(yùn)算符用于將多個(gè)關(guān)系表達(dá)式或邏輯量(“真”或“假”)組成一個(gè)邏輯表達(dá)式。邏輯表達(dá)式的結(jié)果是一個(gè)布爾值,結(jié)果為真則為true,結(jié)果為假則為false。(1)&&:雙目運(yùn)算符,當(dāng)且僅當(dāng)兩個(gè)操作數(shù)的值都為“真”時(shí),運(yùn)算結(jié)果為“真”,否則為“假”。等價(jià)于“同時(shí)”的含義。(2)||:雙目運(yùn)算符,當(dāng)且僅當(dāng)兩個(gè)操作數(shù)的值都為“假”時(shí),運(yùn)算結(jié)果為“假”,否則為“真”。等價(jià)于“或者”的含義。(3)!:單目運(yùn)算符,當(dāng)操作數(shù)的值為“真”時(shí),運(yùn)算結(jié)果為“假”;當(dāng)操作數(shù)的值為“假”時(shí),運(yùn)算結(jié)果為“真”。等價(jià)于“否定”的含義。例如,設(shè)x=5,則(x>=0)&&(x<25)的值為“真”,(x<-5)||(x>5)的值為“假”。2.7運(yùn)算符22十月20252.7.8條件(三目)運(yùn)算符條件運(yùn)算符是唯一有3個(gè)操作數(shù)的運(yùn)算符,所以有時(shí)又稱為三元運(yùn)算符。它由?和:兩個(gè)符號(hào)組成,它的3個(gè)對(duì)象都是表達(dá)式。其語法格式如下:
<表達(dá)式1>?<表達(dá)式2>:<表達(dá)式3>“表達(dá)式1”是C#中可以產(chǎn)生“true”和“false”結(jié)果的任何表達(dá)式,如果表達(dá)式1的值為true,則執(zhí)行表達(dá)式2,條件表達(dá)式的運(yùn)算結(jié)果為表達(dá)式2的值;否則執(zhí)行表達(dá)式3,其運(yùn)算結(jié)果為表達(dá)式3的值。2.7運(yùn)算符
條件運(yùn)算符在優(yōu)先級(jí)上僅優(yōu)于賦值運(yùn)算符,在結(jié)合性上為自右向左。例如:a=3;b=5;n=(a>b)?a:b;//如果a>b成立,則n的值為1,否則為0由于a>b的值為false,故條件表達(dá)式的值為b,即5,再將5賦值給n,n的值為5。22十月2025第3章流程控制語句22十月2025第3章流程控制語句3.1程序的三種基本結(jié)構(gòu)3.2if語句3.3switch語句3.4while語句3.5do…while語句3.6for語句3.7break和continue語句程序的三種常用結(jié)果分別是:順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。在C#中,分支結(jié)構(gòu)采用條件語句實(shí)現(xiàn),循環(huán)結(jié)構(gòu)使用循環(huán)語句實(shí)現(xiàn)。
3.1.1順序結(jié)構(gòu)順序結(jié)構(gòu)是指程序執(zhí)行過程中程序流程按語句順序依次執(zhí)行、不發(fā)生轉(zhuǎn)移的程序結(jié)構(gòu)。3.1程序的三種結(jié)構(gòu)22十月20253.1.2分支結(jié)構(gòu)分支結(jié)構(gòu)體現(xiàn)了程序的判斷能力,在程序執(zhí)行中能根據(jù)某些條件是否成立,從若干條語句或語句組中選擇一條或一組來執(zhí)行。分支結(jié)構(gòu)有兩路分支結(jié)構(gòu)和多路分支結(jié)構(gòu),兩路分支結(jié)構(gòu)可用if語句實(shí)現(xiàn),多路分支結(jié)構(gòu)可用嵌套的if語句和switch語句實(shí)現(xiàn)。3.1程序的三種結(jié)構(gòu)1.兩路分支在兩種可能的操作中按條件選取一個(gè)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 生物標(biāo)志物在藥物臨床試驗(yàn)中的醫(yī)學(xué)轉(zhuǎn)化實(shí)踐
- 生物材料與血管化策略研究
- 生物可吸收支架術(shù)后雙抗治療時(shí)長新進(jìn)展
- 生物制劑臨床試驗(yàn)中受試者退出干預(yù)機(jī)制
- 林業(yè)集團(tuán)總會(huì)計(jì)師考試題庫
- 運(yùn)動(dòng)康復(fù)師面試題及專業(yè)知識(shí)梳理含答案
- 交互設(shè)計(jì)考試題及答案解析
- 深度解析(2026)《GBT 19486-2004電子政務(wù)主題詞表編制規(guī)則》
- 生命末期醫(yī)療決策中的知情同意替代方案
- 土壤環(huán)境測(cè)試技術(shù)規(guī)范
- 心肌病健康宣教
- 2025-2030中國泥漿刀閘閥行業(yè)需求狀況及應(yīng)用前景預(yù)測(cè)報(bào)告
- 選礦廠崗位安全操作規(guī)程
- 成人床旁心電監(jiān)護(hù)護(hù)理規(guī)程
- T/CEPPEA 5028-2023陸上風(fēng)力發(fā)電機(jī)組預(yù)應(yīng)力預(yù)制混凝土塔筒施工與質(zhì)量驗(yàn)收規(guī)范
- DB3308173-2025化工企業(yè)消防與工藝應(yīng)急處置隊(duì)建設(shè)規(guī)范
- 2025股權(quán)質(zhì)押借款合同范本
- 晚會(huì)聘請(qǐng)導(dǎo)演協(xié)議書
- 電遷改監(jiān)理實(shí)施細(xì)則
- 促脈證中醫(yī)護(hù)理方案
- 排污許可合同模板
評(píng)論
0/150
提交評(píng)論