



版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
TOC\o"1-5"\h\z\o"CurrentDocument"第一章c#操作環(huán)境與應(yīng)用 6ー、?NET框架 7.公共語言運行時 7.NETFramework類庫 8二、VisualStudio開發(fā)環(huán)境 91、開始頁面 92、解決方案資源管理器 103、代碼編輯器 164、對象瀏覽器 175、屬性窗口 186、命令窗口和即時窗口 19三、C#語言簡介 191、C#的由來 202、C#的特點 20四、C#體驗初步 221、創(chuàng)建項目 222、創(chuàng)建控制臺應(yīng)用程序 23\o"CurrentDocument"第二章數(shù)據(jù)類型 25ー、 關(guān)鍵字和標(biāo)識符 26關(guān)鍵字(keyword) 26懷識符(identiner) 27常量與變量 27變量 27常量 28整數(shù)類型 29整數(shù)類型的取值范圍 30字符型數(shù)據(jù) 31四、實數(shù)類型 32實型變量 32decima!類型 34五、/7寸串大型 341、可以使用加號(+)連接多個字符串成為ー個新的字符串。 342、字符串的操作 353,字符串的操作 36六、數(shù)據(jù)轉(zhuǎn)換 36隱式轉(zhuǎn)換 36\o"CurrentDocument"第三章運算符和表達(dá)式 41ー、 基本算術(shù)運算符 431■, 加法運算符或正值運算符+ 43減法運算符或負(fù)值運算符- 43乘法運算符? 43除法運算Z 43模運算符% 43遞增、遞減運算 44位移運算符 44邏輯運算符 45邏輯與(邏輯AND)運算符& 46邏輯或(邏輯OR)運算符1 47邏輯異或(邏輯XOR)運算符A 47邏輯非(邏輯NOT)運算符! 48求補運算符? 48條件與(條件AND)運算符&& 48條件或運算符II 48賦值運算符和表達(dá)式 49復(fù)合賦值運算符 49賦值表達(dá)式 49關(guān)系運算符和關(guān)系表達(dá)式 50關(guān)系運算符 50關(guān)系表達(dá)式 50字符和字符串運算符 51ハ、 其他運算符 51點運算符 51索引運算符 51轉(zhuǎn)換運算符 52條件運算符 52\o"CurrentDocument"第四章 程序流程控制 54ー、 選擇結(jié)構(gòu)語句 55if語句 55switch語句 57循環(huán)語句 591、while循環(huán)語句 602、do...while語句 61for語句 62循環(huán)嵌套 64流程跳轉(zhuǎn)語句 651、break語句 652、continue語句 66\o"CurrentDocument"第五章數(shù)組和集合 67ー、 ー維數(shù)組 681、數(shù)組的聲明 683、foreach循環(huán)語句 69二、 多維數(shù)組 70二、 ArrayList 721、創(chuàng)建和定義ArrayList 722、ArrayList的操作 72HashTable 74結(jié)構(gòu)和枚舉 75結(jié)構(gòu) 75枚舉 76\o"CurrentDocument"第六章 引用類型、裝箱和拆箱 79ー、 引用類型 80值類型和引用類型的關(guān)系 81拆箱和裝箱 84\o"CurrentDocument"第七章 面向?qū)ο蠡A(chǔ)ー類和對象 85對象和類 86類的聲明和創(chuàng)建 86對象的創(chuàng)建和調(diào)用(實例化) 87訪問控制修飾符 88類的成員 89靜態(tài)類(staticclass) 90面向?qū)ο笤O(shè)計基礎(chǔ) 91封裝(Encapsulation) 91繼承(Inheritance) 92多態(tài) 92命名空間與using關(guān)鍵字 921、namespace關(guān)鍵字 932、using關(guān)鍵字 94類庫的使用 94.NET基類庫 942、類庫的生成 95\o"CurrentDocument"第八章 方法成員 97ー、方法的定義 98方法定義的格式 98返回值 991、 調(diào)用靜態(tài)方法 992、實例方法的調(diào)用 100三、方法參數(shù)和ref,out和params關(guān)鍵字 1011、方法參數(shù) 1012、ref關(guān)鍵字 102out關(guān)鍵字 1044、params參數(shù) 1055、方法的return語句 105方法的重載 108實例方法的重載 108構(gòu)造方法重載 109屬性 110索引器 112第九章 繼承和多態(tài) 115ー、 繼承 116類繼承的定義 116重寫基類成員 117派生類對象的多類型性 118抽象類和抽象方法 119多態(tài) 1202、 面向?qū)ο蟮亩鄳B(tài)性 121\o"CurrentDocument"第十章 委托和事件 124ー、委托 125委托類型定義 126委托對象的定義 127多重委托 128調(diào)用委托 130委托的參數(shù)傳遞 131二、事件 132事件定義 132事件的引發(fā) 133第?!"一章 接口 137使用接口的意義 138接口的定義 138接ロ的特點 141\o"CurrentDocument"第十二章 異常處理 143ー、 異常 144程序錯誤 144異常 145異常處理 146ラ口構(gòu)化:吊處理 146異常的排除 1484ヽ出異巾 149異常類 149\o"CurrentDocument"第十三章 XML 150ー、 XML簡介 151XML來歷 151XML的特點 151XML應(yīng)用 152二、 XML語法 153語法簡介 1533、 屬性 156
?ZZ?ヽ1、2、3、第十四章ヽ—?ヽ1、2、XML的讀取 161讀取元素值 163XML的寫入 165文件操作 171文件與流 172讀寫文本文件 173讀文本文件 173寫文本文件 177第一章C#操作環(huán)境與應(yīng)用NETFramework2.0VisualStutio開發(fā)環(huán)境C#開發(fā)簡介完成第一個C#程序ー、.NET框架.NET框架是ー個建立、配置和運行Web服務(wù)及應(yīng)用程序的多語言環(huán)境,是Microsoft公司的新一代應(yīng)用程序開發(fā)平臺。,NET框架包含二個部分:公共語言運行時(CommonLanguageRuntime),簡稱CLR:公共語言運行時是.NET框架的核心。在組件的運行期間,這個運行時環(huán)境管理內(nèi)存分配、啟動及結(jié)束線程和進(jìn)程,并執(zhí)行安全策略,同時還滿足該組件対其他組件的所有依賴需求。在開發(fā)期間,這個運行時環(huán)境主要用來筒化開發(fā)工作??蚣茴悗?.NET框架提供ー個統(tǒng)ー的、面向?qū)ο蟮?、層次化的和可擴(kuò)展的類庫集??蚣芟碌乃芯幊陶Z言,包括C#、C++、VB等和各種腳步語言都可以使用這個類庫。C#中的各種數(shù)據(jù)類型就建立在這個類庫之上。VC++.C#,VB.NetVC++.C#,VB.Net/VJ#網(wǎng)絡(luò)應(yīng)網(wǎng)絡(luò)應(yīng)用(ASP.NET)圖形界面(WinForms)數(shù)據(jù)庫數(shù)據(jù)庫操作(ADO.NET)XML(WebService).NetFramework類庫(FCL)公共語言運行時(CLR)操作系統(tǒng).公共語言運行時公共語言運行時(CLR)為.NET應(yīng)用程序提供運行時的執(zhí)行環(huán)境。它為托管代碼提供管理內(nèi)存、線程執(zhí)行、代碼執(zhí)行、代碼安全驗證、編譯以及其他系統(tǒng)服務(wù)。以運行時為目標(biāo)的代碼稱為托管代碼。在CLR環(huán)境中托管代碼編寫的任何程序語言,都被編譯成與平臺無關(guān)的Microsoft中間語言(MSIL)。在.NET運行時內(nèi)部執(zhí)行的是中間語言。MSIL是實現(xiàn)多語言支持的核心。CLR中包含有通用語言規(guī)范(CLS)和通用類型系統(tǒng)(CTS)運行時還通過實現(xiàn)通用類型系統(tǒng)(CTS)的嚴(yán)格類型驗證和代碼驗證基礎(chǔ)結(jié)構(gòu)來加強(qiáng)代碼的可靠性。CTS確保所有托管代碼都是可以自我描述的。各種Micmsoft和第三方語言編譯生成符合CTS的托管代碼,托管代碼可在嚴(yán)格實施類型安全的同時使用其他托管類型實例。CLR運行時自動處理對象布局并管理對象的引用,在不使用它們時自動釋放。這種自動內(nèi)存管理解決了兩個最常見的問題:內(nèi)存泄漏和無效引用。在CLR環(huán)境中,由于!L和編程語言的無關(guān)性,在.NET環(huán)境中不同編程語言可以無縫地共享代碼和數(shù)據(jù)類型。運行庫大大地增強(qiáng)應(yīng)用程序的性能。盡管公共語言運行時提供許多標(biāo)準(zhǔn)運行庫服務(wù),但是它從不解釋托管代碼。ーー種稱為JIT(Justintime)的編譯方式使所有托管代碼能夠通過操作系統(tǒng)轉(zhuǎn)換成本機(jī)語言運行。同時,內(nèi)存管理器排除了出現(xiàn)零碎內(nèi)存的可能性,增大內(nèi)存引用區(qū)域,以進(jìn)ー步提高性能。2..NETFramework類庫框架類庫(FCL)是可以由其他類繼承和擴(kuò)展或直接使用的最基本的類集。.NETFramework類庫是ー個與公共語言運行庫緊密集成的可重用的類庫集合。FCL是面向?qū)ο蟮?并提供你自己的托管代碼,從中導(dǎo)岀功能的類型。這不但是.NETFramework類型易于使用,而且還減少了學(xué)習(xí).NETFramework的新功能所需要的時間。此外,第三方組件可與.NETFramework中的類無縫集成。正如用戶對面向?qū)ο蟮念悗焖M哪菢樱?NETFramework類型使用戶能夠完成ー系列常見編程任務(wù)(包括諸如字符串管理、數(shù)據(jù)收集、數(shù)據(jù)庫連接以及文件訪問等任務(wù))。除這些常見任務(wù)之外,類庫還包括支持多種專用開發(fā)方案的類型。例如,可以使用.NETFramework開發(fā)類型的應(yīng)用程序:控制臺應(yīng)用程序WindowsGUI應(yīng)用程序(Windows窗體)ASP.NET應(yīng)用程序XMLWebServicesWindows服務(wù)Windows窗體類是ー組綜合性的可亜用的類型,它們大大簡化了WindowsGUI的開發(fā);如果要編寫ASP.NETWeb窗體應(yīng)用程序,可使用Web窗體類;XMLWebService作為基于Web技術(shù)的重要發(fā)展,是類似于常見Web站點的分布式服務(wù)器應(yīng)用程序組件。.NETFramework還提供類和工具的集合來幫助開發(fā)和使用XMLWebService應(yīng)用程序。XMLWebServices是基于SOAP(ー種遠(yuǎn)程過程調(diào)用協(xié)議)、XML(一種可擴(kuò)展的數(shù)據(jù)格式)和WSDL(Web服務(wù)描述語言)這些標(biāo)準(zhǔn)生成的?;谶@些標(biāo)準(zhǔn)生成.NETFramework的目的是為了提高與非Microsoft解決方案的互操作性。二、VisualStudio開發(fā)環(huán)境VisualStudio是.NET環(huán)境下核心開發(fā)工具。VisualStudio開發(fā)環(huán)境集成了設(shè)計、開發(fā)、編輯、測試和調(diào)試等許多功能,開發(fā)人員可以方便的開發(fā)應(yīng)用程序。開發(fā)環(huán)境提供了MSDN強(qiáng)大的動態(tài)幫助。VisualStudio是ー個自動化程度很高的系統(tǒng),用戶可以對其進(jìn)行充分的定制。例如,用戶可以完全定義自己的工具欄,包括工具欄的布局、包含的按鈕及按鈕的圖標(biāo),還可以使用宏語言和VisualStudio提供的對象模型開展集成開發(fā)環(huán)境功能,甚至可以通過自己創(chuàng)建的插件來擴(kuò)展它的功能。整個窗體主要由標(biāo)題欄、菜單欄、工具欄、服務(wù)器資源管理器、工具箱、主窗口、解決方案資源管理器、屬性窗口、幫助窗口、狀態(tài)欄等區(qū)域構(gòu)成。1、開始頁面VisualStudio的開始頁面為用戶提供了一個中心位置來設(shè)置集成開發(fā)環(huán)境的參起始頁-licrosoftVisualStudio文件位)??a<z)禪圖&)飾文件位)??a<z)禪圖&)飾XOIM(r)Baa)ttE<r)ICSh?rp25QIx—ipl?L?e<lNiahi1?bQ*Registerf?rtkelarcb11thVcbcastAJAXAp>licati?ns:A.へ3iSol3ioa33soi力!SolBtioal?^jSeUttbOf?bS?t?2打開 項3iSol3ioa33soi力!SolBtioal?^jSeUttbOf?bS?t?2打開 項目0)創(chuàng)建 項目(HBbsimibInt*llic?nc?D?SQLS?rv?rAnalysisS?mc?sSQLStrvtrIntecrationStrvicSQLServerReportS?rvic?v開發(fā)中心集成開發(fā)環(huán)境參數(shù):Profile(用戶文件配置)犍盤映射方案窗口布局幫助過濾器和幫助的顯示方式啟動VisualStudio時顯示的內(nèi)容2、解決方案資源管理器使用VisualStudio開發(fā)的所有應(yīng)用程序是通過解決方案和項H來進(jìn)行組織管理,解決方案和項目的所有管理操作都可以通過【解決方案資源管理器】來完成。2.1解決方案和項目解決方案資遇管理器ぶ至]CardGaaeふPropertiesた引用[コBlackJackGameJCardGameFramework[コDocwnentation,JImagesI」Resources:9app.config_BlackJackForm.csEULK.txtコOptionsForm.cs。電】Program,csTStartForm.csThu,05Bar2009180000GMT-K?vi?cur?isyour*v?r*(?AJAX2Plicgon?Inthissession,BryanS?lliv?nwillfirstbuild??Mpl?AJAXapplicationusin<d?si(npatterns,advic?,andcod*SMtpl?s&oar?sp?et?drtsourctsinth*AJAXceamtmity,*nd*111thanrapos*securityvuln*r?biliti*sIatr?4?cia<E>Fr?ssi?BBlcadThu,05l*r2009180000GMT-Jtafirstlookatusin(ExpressionBl?ndforSilvrli0t2Fr??ViswalSt?4i?I~B??ksOfferfreelicreseftPressThu,05Bar2009180000GUT-Downloadchapters£ro*thr??(r?atbooksonVisualStudio2008Pro。?main,licrosoftLIK,Iatr?dueinc■icr?softSilvwlifht2,S?co?dEiitimvandProcr?Miin<licr*ioftAzureServicesPlatforaVebcasts:CreateApplicationsto...Tu?,03Bar200919.0000GMT-Findoutho?th*Axur*ServicesPlttfor?toolianditchnolvgitscanb?usedforscenariosran<incfr?consoBerVebtoenterpriseapplications.Toncanbuildnew“plicationsoroit?nd??isti7on?sBovaloadtboSOLBat?SorvicosSBK首先,可以在開始頁面中打開已有的項目或創(chuàng)建新的項目。在該頁面中列出了一些最近打開的項目,可以單擊這些項目鏈接直接打開對應(yīng)的項目,其作用和選擇【文件】I【最近的項目命令】一樣。該頁面中還有一些命令鏈接。例如【打開】'【創(chuàng)建】等。單擊這些鏈接會打開相應(yīng)的對話框,然后就可以在這些對話框中進(jìn)行具體的操作。由于應(yīng)用程序的開發(fā)越來越復(fù)雜,通常包含大量不同格式的文件,所以管理這些文件就顯得非常重要。VisualStudio使用解決方案和項目來組織和管理應(yīng)用程序的文件。解決方案是VisualStudio應(yīng)用程序的基礎(chǔ),項目是構(gòu)建単位。解決方案是ー個邏輯上的容器,它包含構(gòu)成應(yīng)用程序的項目和其他文件,一個解決方案中可以包含ー個或多個項目。除了項目之外,解決方案中還可以包含其他獨立與項目的文件。這些文件分為兩類:ー類是在解決方案中由于多個項目共享的文件,它們將被生成到應(yīng)用程序中;另ー類是雜項文件,它們不會被生成到應(yīng)用程序中,而僅僅是被解決方案引用并且屬于解決方案。項目由文件組成,它的輸出結(jié)果通常為可執(zhí)行文件(.EXE)或動態(tài)鏈接庫(.DLL).所有的項目都包含在解決方案之中,并且包含有唯一的項目文件(projectfile.sln)。這個項目文件中包含有項目所包含文件的列表以及它們的跟蹤信息,每次保存項目時都會更新該項目文件。VisualStudio為用戶提供了許多模板,用戶可以使用這些項目模板創(chuàng)建新的項目。項目行為模型在VisualStudio中,用戶和項目之間的交互存在ー組規(guī)則,這組規(guī)則叫做項目模型,它作用于應(yīng)用程序的設(shè)計期間,約束著用戶所能進(jìn)行的操作及操作產(chǎn)生的結(jié)果。VisualStudio為用戶提供了3種預(yù)定義的項目行為模型:基于存儲的項目、基于引用的項目以及混合項目?;诖鎯Φ捻椖?在這種項目中,所有文件只能位于項目的根目錄或子目錄下,并且目錄中的所有文件都將生成應(yīng)用程序中。這種類型的項目雖然也含有一個項目文件,但卻不用。這種類型的項目不能包含對其他項目文件的引用。Web項目就屬于這種類型?;谝玫捻椖?在這種模型的項目中,項目所包含的文件可以保存在任何地方,項目文件用來列出并跟蹤這些文件,只有那些在項目文件中列出的文件才能被生成到應(yīng)用程序中。在這種類型的項目中可以包含對其他項目文件的引用。VisualStudioC++項目就是這種項目類型?;旌享椖浚哼@種模型的項目同時具有上面兩種模型的特點。它所包含的文件可以存儲在任何地方并使用項目文件列表來跟蹤它們,通常也可以包含對其他項目文件的引用。這種類型的項目包括VisualBasic和C#項目。以上行為模型在用戶使用項目模板創(chuàng)建項目和維護(hù)項目時起作用,具體體現(xiàn)在向項目添加/刪除項、移動/復(fù)制項和保存項等操作匕例如,在C#中可以進(jìn)行刪除和移除操作,而在C++項目中就不能進(jìn)行刪除操作,只能進(jìn)行移除操作。項目的類別在C#中,主要有兩種項目類別:本地項目和Web項目。這兩種類別的最主要區(qū)別是組成項目的文件所處的位置不同,本地項目的組成文件位于開發(fā)計算機(jī)上,而Web項目的組成則位于Web服務(wù)器或本地文件系統(tǒng)上。下表列出了用戶創(chuàng)建項目類型和項目類別。項目模板項目類別描述Windows應(yīng)用程序本地項目用于創(chuàng)建常規(guī)的Windows桌面應(yīng)用程序,它的圖形化用戶界面基于Windows控制臺應(yīng)用程序本地項目用于創(chuàng)建命令行應(yīng)用程序,即在DOS窗口中運行的應(yīng)用程序類庫本地項目創(chuàng)建可以在其他應(yīng)用程序中使用的類Windows控件本地項目用戶創(chuàng)建Windows控件,這些控件可以在Windows應(yīng)用程序中使用Web應(yīng)用程序Web項目這種應(yīng)用程序的用戶界面由靜態(tài)的或動態(tài)的頁面組成,位于Web服務(wù)器上Web服務(wù)Web項目Web服務(wù)相當(dāng)于!nternet環(huán)境中的組件,這也是.NET策略的核心技術(shù)之一,它也可以被其他的應(yīng)用程序使用Web控件Web項目用戶創(chuàng)建在Web應(yīng)用程序中使用的控件除了表中的項目類別外,VisualStudio還給出了兩個應(yīng)用程序模板:空項目和空Web項目。這兩個模板將創(chuàng)建一個空的應(yīng)用程序,然后用戶可以向其中添加相應(yīng)的項。在VisualStudio中,可以使用【解決方案資源管理器】窗口來管理和監(jiān)視項目。通常這種邏輯上的層次關(guān)系映射了它們在磁盤上的儲存方式。但是,根據(jù)解決方案和項目的創(chuàng)建方式不同,邏輯關(guān)系不一定必須和磁盤上的儲存方式相對應(yīng)。使用【解決方案資源管理器】窗口【解決方案資源管理器】窗口是用戶解決方案之間的一個雙向接口,它提供了有關(guān)解決方案中的對象適時信息,允許用戶管理這些對象。用戶可以在【解決方案資源管理器】窗口中完成許多文件和項目的管理任務(wù)。例如,通過拖動來復(fù)制或移動對象、刪除對象、生成解決方案和項目、設(shè)置啟動項目、添加項目、添加項、打開文件和查看對象的屬性等。創(chuàng)建新的解決方案和項目VisualStud沁使用解決方案和項目來組織應(yīng)用程序所包含的各種文件。ー個解決方案可以包含一個或多個項目。我們可以先創(chuàng)建解決方案,然后在向這個解決方案中添加項目;也可以只創(chuàng)建項目,VisualStudio將自動為用戶創(chuàng)建一個解決方案來包含新創(chuàng)建的項目。創(chuàng)建新的解決方案和項目:選擇【文件】I【新建】I【項目】命令(或者單擊工具欄上的【新建項目】按鈕)打開【新建項目對話框】。在【新建項目】對話框中選擇【項目類型】上點擊要選擇要建立的項目類型并在【模板】列表框中選擇ー個對應(yīng)類型的應(yīng)用程序模板,然后在【名稱】和【位置】欄中輸入新項目的名稱和項目文件的保存位置。單擊【確定】按鈕創(chuàng)建新的項目。如果用戶所選擇的項目模板存在項目創(chuàng)建向?qū)?,此時會打開項目創(chuàng)建向?qū)?。按照?chuàng)建向?qū)У奶崾具M(jìn)行操作就可以完成新建項目的創(chuàng)建。添加/刪除項解決方案和項目中的項目主要是指各種類型的文件,包括文本文件、位圖文件及源代碼文件等。能夠添加新項的位置有解決方案節(jié)點、項目節(jié)點以及項目下的文件夾節(jié)點。選擇的添加位置不同,所能添加的文件類型也會不同,但是操作方式基本相同。用戶可以添加新創(chuàng)建的文件,也可以添加己有的文件。當(dāng)需要向解決方案或項目中添加項時,首先要選擇添加項的節(jié)點,然后從【項目】菜單中選擇【添加新項】或【添加現(xiàn)有項】命令,或者右擊并從快捷菜單中選擇【添加】I【新建項】。在添加新項時,選擇新創(chuàng)建的文件類型和輸入新文件的名稱,VisualStudio會為用戶創(chuàng)建并打開ー個對應(yīng)類型的空文檔并把它添加到用戶所選擇的節(jié)點下:【添加現(xiàn)有項】時,在已有文件列表中選擇ー個文件,VisualStudio會把該文件添加到用戶所選擇的節(jié)點下并在已編輯器中打開該文件。刪除項時,在【解決方案資源管理器】窗口中選擇耍刪除的項并從快捷菜單中選擇【刪除】命令,被刪除項就會被物理刪除。當(dāng)刪除項時,如果它們正處于打開狀態(tài),VisualStudio會自動關(guān)閉它們。添加刪除項目【解決方案資源管理器】窗口中添加/刪除項目:用戶可以從【文件】I【添加】子菜單中選擇【新建項目】或【現(xiàn)有項目】命令打開【添加新項目】或【添加現(xiàn)有項目】対話框,也可以在【解決方案資源管器】窗口中鼠標(biāo)右擊解決方案節(jié)點,從快捷菜單中選擇【添加】子菜單中【新建項目…】或【現(xiàn)有項目…】命令打開這兩個對話框。【添加新項目】對話框和前面介紹過的【新建項目】對話框基本相同。當(dāng)添加現(xiàn)有項目時,只需要從【添加現(xiàn)有項目】對話框中選擇要添加的項目文件。當(dāng)解決方案中不再需要某個項目時,可以在解決方案中選擇這個項目,然后選擇【編輯】菜單或快捷菜單中選擇【移除】命令把它從解決方案中刪除?!疽瞥恐皇莿h除在解決方案中對該項目的引用,該項目在磁盤匕的對應(yīng)文件不會被刪除。2.8設(shè)置啟動項目啟動項目就是解決方案中首先被生成和運行的項目。在ー個解決方案中,可以存在ー個或多個啟動項目。在【解決方案資源管理器】窗口中,啟動項目使用粗體字顯示。如果存在多個啟動項目,則包含這些項目的解決方案顯示為粗體。在創(chuàng)建解決方案時,最先被添加到解決方案中的項目默認(rèn)成為啟動項目。如果要把ー個項目設(shè)置為啟動項目,首先在【解決方案資源管理器】窗口中選擇這個項目,然后從【項目】菜單或快捷菜單中選擇【設(shè)為啟動項目】命令,此時這個項目就會被顯示為粗體,原來的啟動項目則被取消。多啟動項目的設(shè)置要通過解決方案屬性頁對話框來完成。在【解決方案資源管理器】窗口中選擇解決方案節(jié)點,從【視圖】菜單或快捷菜単中選擇【屬性頁】命令或者單擊【解決方案資源管理器】窗口中的【屬性】按鈕打開解決方案的屬性頁對話框。在該對話框中,打開左邊窗格中的【通用屬性】節(jié)點選擇【啟動項目】選項,在對話框的右邊選中【多啟動項目】単選按鈕,對【多啟動項目】列表中各個項目進(jìn)行設(shè)置。在【操作】列中可以設(shè)置啟動調(diào)試器時是否運行相應(yīng)的項目,共有3個選項:啟動調(diào)試器運行項目并進(jìn)行調(diào)試。啟動調(diào)試器運行項目而不調(diào)試。啟動調(diào)試器不運行項目。在對話框中的【上移】和【下移】按鈕用于調(diào)整項目的啟動順序。在列表中,靠上的項目較先啟動。設(shè)置解決方案的屬性解決方案的屬性在解決方案屬性頁對話框中完成,這些屬性主要影響應(yīng)用程序的生成過程。在解決方案屬性頁中執(zhí)行的任務(wù)包括確定項目在調(diào)試器中的運行順序,指定項目依賴性,定義和編輯解決方案與項目的生成配置。除項目設(shè)置外,介紹另外兩種設(shè)置:項目依賴:允許用戶指定解決方案中項目的生成順序,即某ー項目的生成依賴于其他項目為其提供資源,在生成該項目前,必須首先生成它所依賴的項目。用戶可以在這個屬性頁中選擇解決方案中一個項目并指定它所依賴的項目。生成配置:允許指定如何生成解決方案和項目的調(diào)試版本及發(fā)行版本??梢苑謩e指定調(diào)試版本和發(fā)行版本的生成配置,也可以同時指定所有版本的生成配置,同時還可以自定義生成配置。設(shè)置項目屬性在VisualStudio.NE中,項目的屬性可以分為兩類,配置無關(guān)屬性和配置相關(guān)屬性。常見的項目配置有兩種:為調(diào)試應(yīng)用程序設(shè)置的配置和為最終用戶發(fā)行程序設(shè)置的配置。配置無關(guān)屬性就是那些影響所有項目配置的屬性:而配置相關(guān)屬性是指那些只影響指定項目的屬性。配置無關(guān)屬性在【屬性】對話框中進(jìn)行配置,通常包括項目的名稱、保存位置及項目所對應(yīng)的策略文件。每次在【解決方案資源管理器】窗口中選擇ー個項目節(jié)點時,【屬性】對話框就會自動顯示它的配置無關(guān)性。配置相關(guān)屬性則在項目頁對話框中進(jìn)行設(shè)置,通常包括程序集名稱、啟動対象及輸出類型等屬性。在該對話框中,用戶可以針對不同的項目配置設(shè)置不同的屬性值。例如,針對針對調(diào)式配置和發(fā)行配置設(shè)置不同的優(yōu)化屬性。耍打開項目屬性頁對話框,首先在【解決方案資源管理器】窗口中選擇ー個項目節(jié)點,然后從【視圖】菜單或快捷菜單中選擇【屬性頁】命令或者單擊【解決方案資源管理器】窗口中的工具欄的【屬性】按鈕,打開項目屬性頁對話框。項目屬性對話框中,可以根據(jù)需要對其進(jìn)行調(diào)整。但是,在選擇項目模板創(chuàng)建項目時,VisualStudio.NE將根據(jù)所選擇的模板來確定哪些屬性配置無關(guān)屬性、哪些屬性配置相關(guān)屬性,為用戶設(shè)置各種屬性的值。所以用戶不需要對其進(jìn)行太多的設(shè)置。生成解決方案和項目VisualStudio.NE提供了兩種常用的生成配置:調(diào)試版本和發(fā)行版本。生成調(diào)試版本的應(yīng)用程序主要是為了進(jìn)行調(diào)試,它在生成的程序中包含大量的調(diào)試信息;發(fā)行版本主要是為了生成最終的應(yīng)用程序,它對生成的代碼進(jìn)行充分優(yōu)化,使生成的代碼尺寸更小、速度更快。當(dāng)生成應(yīng)用程序時,可以在工具欄的【解決方案配置】下拉列表框中選擇要生成的版本,然后選擇【生成】丨【生成解決方案】命令或在【解決方案資源管理器】窗ロ選擇解決方案節(jié)點并從快捷菜單中選擇【批生成】命令,此時會打開【批生成】對話框。在【批生成】對話框中列出當(dāng)前解決方案中所有項目的生成配置。在【解決方案配置】列中選擇要生成的程序版本,通過使用【生成】列中的復(fù)選框來選擇是否生成對應(yīng)的項目配置。選擇完畢以后,單擊【生成】按鈕可生成選擇的項目;單擊【重新生成】按鈕將重新開始生成所有選擇的項目配置:單擊【生成】則只生成那些更新過的項ロ配置?!窘鉀Q方案資源管理器】是用戶使用最多的工具之一,所有與解決方案和項目有關(guān)的操作基本上都是在【解決方案資源管理器】窗口中完成的。3、代碼編輯器代碼編輯器支持VisualStudio.NE的所有編程語言,可以使用同一編輯器編輯所有語言的代碼,包括C++、C#、VB、HTML、XML、及CSS等。代碼編輯器主要分為3個區(qū)域;代碼編輯區(qū)、指示器邊距和選定內(nèi)容邊距。
目配?Pr?criv 目配?Pr?criv R(stria4ロ*rcs)Pr?(r*4、對象瀏覽器對象瀏器號瀏覽所有娟件 ?ー?七g|*<?*> ?瀏覽所有娟件 ?ー?七g|*<?*> ?jB@CardGts? へつ()BleckJadt BlacKJtckFor*?';Bl*ckJ*ckGMi?&FEndRtsolt?纟Options?ora■?;Pltytr“みPry*StartForm(}Blackjack.CardGweFraBevork匐CBlackjackPropartia*--^BicratoftVisualBaitc{1iicrosoftVisvalBasic{/Microsoft.VisualB&sxc.^>plicatioi?《}IicrosoftVisualBasicCoapil?rS?i?OIicrosoftVisualBasicDances上。!icrosoftVisualBasieFil?I0+(}Iicrosoft.VisualBasieLo(^in<?()IicrosoftVisualBasielyS?rvic?s?OIicrosoftVisualBasielyS?rvicas囹OascorlibB?t(daciaal)VBlackJackForaOCl?arB?tBtn_Click(object.Syst?MEv?ntAr(s)イCl.arTabl?0ガVDblI>vnBtn_Click(obj?ct,SystwEv?ntAr(s)づ?D?alBtn_Click(object,Syst?*Ev?ntArc>)VDispos*(bool)マEndGw*SlackjackEn<QL?snlt)ExitBtn.Click(object,S尸t”EventArfs).VFiftyBtnjClick(object,S)rst?eEventAr(s)イJtGtaeResult()qVKitBtn一Click(object.SystemEventAr^s)6VMnadr?dBtft_Click(object,SystemEventArcs)靜I&itialiieCompon?nt0L?adCard(SystemTindovsForesPictur?Box,BlackjackCardGMB?Fr??*vork.CaVLoadCardSkinI?ac?s0ベS?tVpGtm?InPlavOinternalclassBlackJackFora:Sアste?.?endows.Fo?9s.Fo??Blackjack的成員【対象瀏覽器】為用戶提供了查看不同組件中的對象和對象的成員,査看對象的組件不僅僅是用戶解決方案中的項目,還可以是用戶的項目所引用的組件以及外部組件,如.NET框架組件、COM組件。這些組件構(gòu)成了【對象瀏覽器】的瀏覽范圍?!緦ο鬄g覽器】窗口分為:工具欄、對象窗格和描述窗格。對象窗格以樹狀視圖的形式列出了當(dāng)前瀏覽范圍中的所有組件:成員窗格顯示對應(yīng)于左窗格中所選對象的所有成員;底部描述窗格顯示當(dāng)前所選擇對象或成員的描述信息。在窗口左邊樹狀視圖中展開或收起對象節(jié)點并選擇要査看的對象,成員窗格中會顯示選擇對象的成員,包括函數(shù)和變量,描述窗格中將會顯示該對象的描述
信息,主要是成員的聲明信息。根據(jù)選擇內(nèi)容,有時描述窗口中會顯示ー些超鏈接,單擊這些鏈接可以跳轉(zhuǎn)到相應(yīng)的對象節(jié)點上。每次用戶作出ー個選擇時,對象瀏覽器都會記錄下來。因此可以通過【對象瀏覽器】工具欄上的前進(jìn)/后退按鈕,回到瀏覽過的位置。對象窗格以樹狀視圖的形式顯示對象的層次結(jié)構(gòu),所以用戶可能瀏覽到級別很深的節(jié)點。對象窗格中可能包含大量的組件,因此,當(dāng)用戶看到子節(jié)點上的某個對象并且想查看它的定義時,可能要花大量的時間。所以用戶也可以選擇要查看的対象節(jié)點,鼠標(biāo)右鍵在快捷菜單中選擇【瀏覽定義】命令,【對象瀏覽器】窗口會定位到包含所選擇對象的頂級節(jié)點,展開這個頂級節(jié)點就可以查找相應(yīng)的對象。【對象瀏覽器】窗口中還可以查看對象或成員的定義或聲明代碼,指定所要瀏覽的組件(即瀏覽范圍)以及查找特定的符號。在【對象瀏覽器】窗口中瀏覽對象和成員時,可以跳轉(zhuǎn)到代碼編輯器中查看它們的聲明和定義代碼。要査看詳細(xì)的對象或成員定義,選擇要査看的對象或成員,從快捷菜單中選擇【轉(zhuǎn)到定義】命令,在代碼編輯器中打開包含定義代碼的源文件,將輸入光標(biāo)自動定位到代碼處。瀏覽范圍是指【對象瀏覽器】窗口中顯示和查找目標(biāo)組件的對象。瀏覽范圍包括活動項□和選擇組件?;顒禹椖繛g覽范圍允許用戶査看解決方案中當(dāng)前選定項目的內(nèi)容和它所引用的組件。每次改變活動項目時,【対象瀏覽器】窗口會及時更新反應(yīng)出這種變化。在選擇組件瀏覽范圍中,可以選擇想要瀏覽的組件。5、屬性窗口屬性 ▼QXBlackJackForaSystem.Windows.Forms.Form▼畫幫同メ」日數(shù)據(jù) ヘ0(ApplicationSettings田BlackJackForaSystem.Windows.Forms.Form▼畫幫同メ」日數(shù)據(jù) ヘ0(ApplicationSettings田(DataBindings)Tag日外觀BackColor | |Control0Backgroundlmage QQQBlackjack.PropBackgroundlmageLayouStretchCursor Default0Font 宋體,9pt v【屬性】窗口由以下幾部分組Text與控件關(guān)聯(lián)的文本?成。對象名稱下拉列表框:在下拉列表框中選擇對象名稱。在【屬性】窗口的工具欄上可以設(shè)置顯示方式和顯示內(nèi)容。【屬性】的工具欄上有3個可使用圖標(biāo)按鈕,依次是【按分類排序】、【字母排序】、【事件】。中間的表格中,第一列顯示屬性名,第二列顯示屬性值。底部的提示部分顯示當(dāng)前所選擇屬性的提示信息?!緦傩浴恐饕脕碓O(shè)計窗體或表單時顯示可視控件的屬性??梢栽凇緦傩浴恐兄苯有薷目丶膶傩?,這些修改直接體現(xiàn)在設(shè)計視圖上。在軟件開發(fā)中【屬性】和【屬性瀏覽器】一般結(jié)合使用。6、命令窗口和即時窗口命令窗ロ ▼QXお錯誤列表二]命令窗ロ在【命令窗口】模式ド,可以直接輸入并執(zhí)行VisualStudio提供的各級命令,包括菜單中的命令以及沒有在菜單中出現(xiàn)的命令。使用這種方式不需要在菜單中ー級ー級搜索命令,而是在【命令窗口】中直接輸入命令名稱及參數(shù)就迅速執(zhí)行。立即模式主要用于調(diào)試。在調(diào)式應(yīng)用程序中,可以在【命令窗口】中計算表達(dá)式的值、查看和改變變量的值、調(diào)用函數(shù)和執(zhí)行語句?!久畲翱凇康拿钅J接脕碇苯訄?zhí)行VisualStudio開發(fā)環(huán)境提供的各種命令。當(dāng)【命令窗ロ】處于命令模式下時,它的標(biāo)題欄顯示為“命令窗口”,它和DOS命令行相似?!炯磿r窗口】操作和功能與命令窗口類似,選擇【調(diào)試】I【窗口】I【即時】命令打開【即時窗口】。三、C#語言簡介C#(發(fā)音為C#sharp)是ー種簡單、現(xiàn)代、完全面向?qū)ο竽?類型安全的編程語言。C#語言從C和C++語言演化而來,同時C#具備了應(yīng)用快速開發(fā)(RapidApplicationDevelopment,RAD)語言的高效率和C++固有的強(qiáng)大能力,吸收了Java和Delphi等語言的特點和精華,是目前.NET開發(fā)的首選語言。1、C#的由來在過去的一段時間中,C和C++一直是商業(yè)軟件開發(fā)領(lǐng)域中最具有生命力的語言。它們?yōu)槌绦騿T提供了豐富的功能,高度的靈活性和強(qiáng)大的底層控制力,但是利用C/C++語言開發(fā)Windows應(yīng)用程序顯然復(fù)雜了很多,同時也犧牲了?定的效率。與微軟推出的VisualBasic等語言相比,同等級別的C/C++語言的復(fù)雜性,因此不管是經(jīng)驗豐富的程序員還是初涉編程的自學(xué)者都在試圖尋找ー種新的語言,希望在功能與效率之間找到ー個更為理想的平衡點。以前的有些語言,以犧牲靈活性的代價來提高效率。這些解決方案對編程人員的限制過多(如屏蔽一些底層代碼控制的機(jī)制),其所提供的功能能以令人滿意。這些語言無法方便地同系統(tǒng)交互,也無法很好地和當(dāng)前的網(wǎng)絡(luò)編程相結(jié)合。對于C/C++用戶來說,最理想的解決方案無疑是在快速開發(fā)的同時又可以調(diào)用底層平臺的所有功能。他們想要一種和最新的網(wǎng)絡(luò)標(biāo)準(zhǔn)保持同步并且能和已有的應(yīng)用程序良好整合的環(huán)境。另外,ー些C/C++開發(fā)人員還需要在必要的時候進(jìn)行ー些底層的編程。針對這ー問題,微軟公司與2000年6月26日正式發(fā)布了C#oC#是一種最新的、面向?qū)ο蟮木幊陶Z言。C#使得程序員可以在Microsoft開發(fā)的最新的.NET平臺上快速地編寫Windows應(yīng)用程序,而且Microsoft.NET提供了一系列的工具和服務(wù)來最大程度地開發(fā)和利用計算與通信領(lǐng)域。2、C#的特點正是由于C#面向?qū)ο蟮淖吭皆O(shè)計,使它成為構(gòu)建各類組件的理想之選——無論是高級的商業(yè)對象還是系統(tǒng)級的應(yīng)用程序。使用簡單的C#語言結(jié)構(gòu),這些組件可以方便地在XML(可擴(kuò)展標(biāo)記語言)網(wǎng)絡(luò)服務(wù)中隨意轉(zhuǎn)化,從面使它們可以通過Internet在任何操作系統(tǒng)用任何語言在其上進(jìn)行調(diào)用。更值得一提的是,C#并沒有因為其高效的開發(fā)功能而損失C/C++原有的強(qiáng)大功能。它忠實地繼承了C/C++的優(yōu)點。C#還具備以下特點。1)簡潔易用的語法C#主要從C和C++繼承而來,同時吸收了Java和Delphi的優(yōu)點,摒棄了C和C++中一些比較復(fù)雜的語法元素,如多父繼承。C#取消了C和C++中的指針,不允許直接對內(nèi)存進(jìn)行操作,讓代碼運行在安全的環(huán)境中2)自動的資源回收機(jī)制C#和.NET的完美集成,使得C#完成擁有.NET的自動回收機(jī)制。在Windows中,提供給程序使用的一切軟、硬件統(tǒng)稱為資源。比如程序中需要在窗口上畫圖的筆就是ー種資源,在早期的Windows版本中,程序使用完資源后應(yīng)該及時釋放,否則會導(dǎo)致系統(tǒng)資源不足而運行變慢。在.NET中,由于資源使用完后由系統(tǒng)自動清理,所以編寫C#程序,不必小心翼翼地保證及時釋放資源,從而可以把更多的精力放在程序編寫的邏輯上。3)與Web緊密結(jié)合網(wǎng)上.辦公和電子商務(wù)在各行各業(yè)中得到越來越廣泛的應(yīng)用,B/S模式程序的市場需求越來越多。在微軟的開發(fā)套件中,C#與ASP.NET是相互融合的。ASP.NET的應(yīng)用程序可是使用VB.NET的語法,也可以使用C#語法。使用C#語法編寫的ASP.NET結(jié)構(gòu)更嚴(yán)謹(jǐn),運行更高效。由于有了Web服務(wù)框架的幫助,對程序員來說,網(wǎng)絡(luò)服務(wù)看起來就像是C#的本地對象。程序員能夠利用他們自己已有的面向?qū)ο蟮闹R和技巧開發(fā)Web服務(wù)。僅需要使用簡單的C折吾言結(jié)構(gòu),C#組件就能夠方便地為Web服務(wù),并允許它們通過!nternet被運行在任何操作系統(tǒng)上的任何語言調(diào)用。4)完整的安全性與錯誤處理語言上的安全性與錯誤處理能力,是衡量一種語言是否優(yōu)秀的重要依據(jù)。任何人都會犯錯誤,即時最熟練的程序員也不例外,如忘記變量的初始化,對不屬于自己管理范圍的內(nèi)存空間進(jìn)行修改等。這些錯誤常常產(chǎn)生難以預(yù)見的后果。一旦這樣的軟件被投入使用,尋找和改正這些簡單錯誤的代價將會是讓人無法承受的。C#的先進(jìn)思想可以消除軟件開發(fā)中的許多常見錯誤,并提供了包括類型安全在內(nèi)的完整的安全性能。為了減少開發(fā)中的錯誤,C#幫助開發(fā)者通過更少的代碼完成相同的功能,這不但減輕了編程人員的工作量,同時更有效的避免了錯誤的發(fā)生。5)版本處理技術(shù)升級軟件系統(tǒng)中的組件(模塊)是一件容易產(chǎn)生錯誤的工作,在代碼修
改過程中可能對現(xiàn)存的軟件產(chǎn)生影響,很有可能導(dǎo)致程序的崩潰。為了幫助開發(fā)人員處理這些問題,C#在語言屮內(nèi)置了版本控制功能。C#提供內(nèi)置的版本支持來減少開發(fā)費用,使用C#將會使開發(fā)人員更加輕易地開發(fā)和維護(hù)各種商業(yè)軟件。6)靈活性和兼容性在簡化語法的同時,C#并沒有失去靈活性。盡管C#不是ー種無限制語言,比如:它不能用來開發(fā)硬件驅(qū)動程序,在默認(rèn)狀態(tài)下沒有指針。但是,在學(xué)習(xí)過程中你將發(fā)現(xiàn)它仍然是那樣的靈巧。四、C#體驗初步1、創(chuàng)建項目1)2)3)4)5)6)選擇1)2)3)4)5)6)選擇[VisualC#]
新建項自打開VisualStudio2005創(chuàng)建項目,有三種方法:第一種:在【起始頁】中單擊【創(chuàng)建】。第二種:單擊【文件】菜單,選擇【新建】I【項目】創(chuàng)建。第三種:單擊工具欄上的【新建】按鈕,選擇【項目】創(chuàng)建在【項目類型】框內(nèi)選中【VisualC#】項目下的【W(wǎng)indows】選項。在【模板】列表內(nèi)選擇程序模板,如:【W(wǎng)indows應(yīng)用程序】或【控制臺應(yīng)用程序】項。在【位置】文本框右邊選擇【瀏覽】按鈕,選擇ー個文件夾對項目進(jìn)行保存或直接在文本框內(nèi)進(jìn)行手動更改。在【名稱】名稱文本框內(nèi),輸入自己命名的項目名稱或使用系統(tǒng)默認(rèn)。ン單擊窗口右下角的【確定】按鈕,建立所要編寫的應(yīng)用程序。創(chuàng)建Windows應(yīng)用程序模板①):Jヨ類庫VisualStudio模板①):Jヨ類庫VisualStudio/ズ勰板?m]Windows應(yīng)用程序在這里修改項目名項目類型典,亞軸燃目‘す蕊鴉解決方案其他項目類型惻試項目用于創(chuàng)建具有?indows用戶顯]應(yīng)用程序的項目名稱G): YindowsApplicatiohl位置[): D:\MyDocumentハVisualStudio2005'projects解決方案名稱?):*indgsApplistionl 叵!創(chuàng)建解決方案的目錄也)以上7個步驟是后面創(chuàng)建【控制臺應(yīng)用程序】和【W(wǎng)indows應(yīng)用程序】的前期步驟。2、創(chuàng)建控制臺應(yīng)用程序K1-12創(chuàng)建第一個控制臺應(yīng)用程序。1)創(chuàng)建【控制臺應(yīng)用程序】一個控制臺應(yīng)用程序,項目名稱為htTest;解決方案名稱默認(rèn),即和程序名稱相同htTest。2)在代碼區(qū)staticvoidMain(string[]args)后面的兩大括號之間輸入代碼。usingSystem;〃引用MS.NET框架類庫中名為System的命名空間usingSystem.Collections.Generic!〃本行在這里沒用,可以刪掉usingSystem.Text;〃本行在這里沒用,可以刪掉namespacehtTest〃用戶白定義的命名空間,默認(rèn)和程序名相同(classProgram〃用戶自定義的類,默認(rèn)為文件名(staticvoidMain(string[]args)〃C#程序的入口方法(Console.WriteLine(*HelloWorld!”);“I.屏幕丨.打印:HelloWorldConsole.ReadLineO;〃等待?個輸入運行結(jié)果:,代碼分析ヨ第一行usingSystem:引用Microsoft.NET框架的類庫中System命名空間,using命令可以使用輸入命名空間的類。第二、第三行代碼分別調(diào)用了System.Collections.GenericfUusingSystem.Text命名空間,在本程序中不用可以刪除;〃后面為注釋;C#中的分號(;)衰示一條語句的結(jié)束:花括號{}表示一組語句,有{開始必須有}結(jié)束:namespacehtTest為自定義的一個命名空間。namespace為命名空間聲明修飾符,htTest為命名空間名稱,可以選擇ー個認(rèn)為合適的名稱;classProgram定メ—個類。class為類修飾符,Programe為自定義類名,為自定義名稱。staticvoidMain(string[]args)C#程序必須包含ー個Main方法,Main方法是程序的入口點,程序控制在該方法中開始和結(jié)束。該方法用來執(zhí)行任務(wù),并在任務(wù)完成后返回信息。Main方法在類的內(nèi)部聲明,它必須有static關(guān)鍵字,表明是靜態(tài)方法。Void關(guān)鍵字表明該方法執(zhí)行任務(wù)后不返回任何信息。Console.WriteLine(""HelloWorld!"");Console是調(diào)用的System命名空間中的類,WriteLine("”)是Consloe的方法,它作用是使計算機(jī)打印雙引號之間的字符串,我們將雙引號之間的字符通常稱為字符串。Console.ReadLine();ReadLine()是Console類的輸入方法之一,它用于輸入一個字符串,按Enter鍵結(jié)束輸入,這里使用是為了上句在屏幕上打印以后等待回車顯示再結(jié)束。編譯并運行程序。從IDE編譯并運行程序。按F5犍生成并運行(也可以選擇【調(diào)試】菜單中的【啟動】.第二章數(shù)據(jù)類型關(guān)鍵字和標(biāo)識符常量和變量的定義和使用整數(shù)類型、實數(shù)類型和decimal、布爾類型數(shù)值類型轉(zhuǎn)換(隱式轉(zhuǎn)換和顯示轉(zhuǎn)換)在計算機(jī)中,應(yīng)用程序也是耍處理各種不同類型的數(shù)據(jù),如整數(shù)、小數(shù)和字符等,這些就稱為數(shù)據(jù)類型。我們來認(rèn)識幾個常見的數(shù)據(jù)類型。int:表示整數(shù),如1、20、?168,double:表示實數(shù),如2.5、3.14.1926,-2889.23bool:表示一個布爾值,即真(true)和假(false)。char:表示字符,如‘a(chǎn)’、‘A’、‘3‘、string:表示字符串,如“HelloWorld!"、“我們一—起學(xué)習(xí)C#語言”。ー、 關(guān)鍵字和標(biāo)識符1、關(guān)鍵字(keyword)上面講到“im”表示ー個整數(shù),這說明對于C#編譯器來說,int有著特定的含義,它代表了整數(shù)類型。C#中一些被賦予特定的含義,具有專門用途的字符串稱為關(guān)鍵字,又叫保留字。C#關(guān)鍵字列表abstractExplicitNullStructasExternObjectSwitchbaseFalseOperatorThisboolFinallyOutThrowbreakFixedOverrideTrueByteFloatParamsTryCaseForPartialTypeofCatchForeachPrivateUintCharGetProtectedUlongCheckedGotoPublicUncheckedClassIfReadonlyUnsafeConstImplicitRefUshortContinueInReturnUsingDecimalIntSbyteValueDefaultInterfaceSealedVirtualDelegateInternalSetVolatileDoIsShortVoidDoubleLockSizeofWhereElseLongStackallocWhileEnumNamespaceStaticYieldEventNewString2,標(biāo)識符(identifier)C#對各種變量、方法和類等要素命名時使用的字符列成為標(biāo)識符。顧名思義,標(biāo)識符是程序員己起名字的地方就叫標(biāo)識符,標(biāo)識符要遵守標(biāo)識符的命名規(guī)則。不能與系統(tǒng)關(guān)鍵字重名。標(biāo)識符由字母、下劃線、數(shù)字或中文組成。標(biāo)識符應(yīng)以字母、中文或下劃線開頭。標(biāo)識符中間不能包含空格。C#標(biāo)識符對大小寫敏感。例如:合法:numberOfstudent,i,abcll2,王老五,_name,Str_class以下不合法:$a,abc#〃除下劃線外不能使用特殊字符;2abc 〃標(biāo)識符不能以數(shù)字開頭;string,if〃標(biāo)識符不能使用系統(tǒng)關(guān)鍵字。二、 常量與變量程序中的數(shù)據(jù)包括常量和變量兩種,每個常量或變量都有數(shù)據(jù)類型。1、變量變量用于存儲特定數(shù)據(jù)類型的值。變量是存儲信息的單元,在計算機(jī)中它對應(yīng)ー個內(nèi)存空間。用變量名代表其存儲空間。程序能在變量中存儲值和取出值。C#是強(qiáng)類型語言。強(qiáng)類型語言要求程序設(shè)計時在使用數(shù)據(jù)之前必須對數(shù)據(jù)的類型進(jìn)行聲明。在程序設(shè)計中很多的錯誤是發(fā)生在數(shù)據(jù)類型的誤用上,強(qiáng)類型語言能夠避免出現(xiàn)可能多的數(shù)據(jù)類型錯誤。另外,強(qiáng)類型語言能清楚的表達(dá)程序員命名的意圖,使代碼更具有可讀性。1)聲明變量變量用來存放數(shù)據(jù),在使用變量前必須對它進(jìn)行聲明。變量聲明的?般形式為:類型變量名例如:inti;〃聲明?個整型變量istringteacherName!〃聲明1個字符串變量intj,k,number!〃聲明3個整型變量2)變量賦值變量的賦值使用等號(“=”),變量聲明之后可以多次改變它的值。inti:〃聲明一個整型變量ii=100://把100賦值給ii=300I〃i的值變?yōu)?00Console.WriteLine(i);stringstudentName="張ー?;intj=5:/Z定義了變量j,同時給它們賦值為5i=j=126;〃將i,j的值都變化為126Console.WriteLine(i);K運行結(jié)果:3SIC:\¥INDO¥S\syste>3....冋X300 1I126請按任意鍵繼續(xù)?.?丄!Il|LR代碼分析ヨ第一行打印1時,i的值為300,是本行打印之前的最后一次賦值i=300:第二行打印i的值為126。i=j=126I給i賦值126。2、常量在程序設(shè)計語言中,常量是指其值在程序中設(shè)置,在程序運行過程中不能在改變的值,比如圓周率。常量默認(rèn)為靜態(tài),所以不能再使用static修飾符。定義常量的關(guān)鍵字const,定義格式:[訪問修飾符]const數(shù)據(jù)類型常量名=常量值例如:constdoublePI=3.1415926;〃定義P!為雙精度數(shù)據(jù)類型的常量使用常量應(yīng)注意以下幾點:?常量在聲明時初始化,其值不能再修改;?不能從變量中提取值來初始化常量;
為了閱讀方便,習(xí)慣上常量名用大寫字母表示;如果值是不變的,且有多處要使用該值建議該值定義為常量;常量使程序更易閱讀、修改,程序中只需要修改一處,在使用該常量的所有位置都起作用。constdoublePI=3.14;//定義常量P1值為3.14double為雙精度類型intr=10!〃定義整型變量并賦值為10doublearea=0I〃定義變Qarea,初始就值為〇area=r?r*PI:〃計算網(wǎng)的面積Console.WriteLine("半徑為{0}圓的面積為{1}:”,r,area);〃在屏幕上打印圓的面積r=5I 〃變量r重新賦值為5area=r*r*PI;〃計算圓的面積Console.WriteLine("半徑為{0}圓的面積為{1}:",r,area);〃在屏幕上打印網(wǎng)的面枳K運行結(jié)果』S1C:\TIHD0VS\systeB32\o...-C1X聿?聿?蘊曬翻翦之請接任意鍵繼續(xù)...第1行定義常量Pl并賦值;2ヽ3行定義T兩個變量intr和doublearea;第4行進(jìn)行計算;第5行打印圓的半徑和面積;6、フ、8行作為圓的半徑r被重新賦值并重新計算圓的面積,輸出到。Console.WriteLine("半徑為{0}圓的面積為{1}:",r,area):中{0}、{1}為格式化輸出變量,{0}對應(yīng)字符串后面的第1個變量r,{1}對應(yīng)字符串后面的第2個變量area。三、 整數(shù)類型整型是類型最豐富的數(shù)據(jù)類型,其中字符型(char)也歸為整數(shù)類型,因為字符型變量保存的是字符的Unico加編碼值,字符型變量的值可以轉(zhuǎn)換成整數(shù)類型值。整型數(shù)據(jù)類型的豐富是為了有效利用計算機(jī)的內(nèi)存資源。程序設(shè)計時,選用占用內(nèi)存少的類型可以降低內(nèi)存的消耗。sbyte8-bit有符號整數(shù)short16-bit有符號整數(shù)int32-bit有符號整數(shù)long64-bit有符號整數(shù)byte8-bit無符號整數(shù)ushort16-bit無符號整數(shù)uint32-bit無符號整數(shù)ulong64-bit無符號整數(shù)char字符類型,Unicode編碼簡單類型描述整型常量可以使用“じ’和“U”所組成的后綴,“U”代表無符號,“じ’代表64位整數(shù),如ー125u、250ULo另外在代碼中使用整型常量1時,由于1符合以上任何ー種整數(shù)類型(char除外)的取值范圍,編譯器會把它當(dāng)作哪ー個整型?C#有以下規(guī)則:1)如果該整數(shù)沒有后綴,則它屬于以下所列的類型中第1個能夠表示其值的類型:int、uint、long、ulong這表示編譯器會把1當(dāng)作int類型。2)如果該整數(shù)帶有后綴U或u,則它屬于以下所列的類型中第1個能夠代表其值的哪個類型:uint、ulong〇3)如果該整數(shù)帶有后綴L或1,則它屬于以下所列的類型中第1個能夠代表其值的那個類型:long>unlong4)如果后綴帶有UL、LU,則它屬于ulong類型。U、L部分大小寫,建議都使用大寫字母。1、整數(shù)類型的取值范圍整型數(shù)據(jù)的取值范圍不需要死記硬背。每個類型都有最大值、最小值屬性。Console.WriteLine("int的最大取值為:MaxValue+"int的最小取值:"+int.MinValue);2、字符型數(shù)據(jù)字符型數(shù)據(jù)char屬于整數(shù)類型,但它是用來處理Unicode字符。Unicode字符是16位字符,用來表示世界上大多數(shù)已知的書面語言。Char變量以無符號16位數(shù)字的形式存儲,取值范圍為〇?65535.每個數(shù)字代表ー個Unicode字符。Unicode的前128個字符(〇?127)對應(yīng)于鍵盤上的字母和符號,叫做ASCH碼。>字符常量C#的字符常量是單引號(即撇)括起來的字符,如:‘a(chǎn)'‘9’等,都是字符常量,‘ガ和,A’是不同的字符常量。C#還允許使用ー種特殊形式的字符常量,就是以ー個、開頭的字符序列。例如'\n,表示一個換行符。這種顯示非字符的使用難以用?般形式的字符表示,所以規(guī)定使用這種形式表示。我們把它稱為轉(zhuǎn)義字符。常用的以“ヽ”開頭的特殊字符轉(zhuǎn)義序列字符名稱UnicodeV單引號0x0027ド雙引號0x0022\\反斜杠OxOOSCW0空0x0000\a警報0x0007\b退格符0x0008\f換頁符OxOOOC\n換行符OxOOOA\r回車OxOOOD\t水平制表符0x0009\v垂直制表符OxOOOB轉(zhuǎn)義字符意思就是反斜杠'ヾ后面的字符轉(zhuǎn)變稱為另外的意義。由于'ヤ'在C#中已經(jīng)表示轉(zhuǎn)移字符標(biāo)識,如果要打印它,需要使用”\\"。Unicode編碼使用十六進(jìn)制編碼代表相應(yīng)的字符?!甛n’、’\x000A,,'\xA"和,\xa,是同一意思。Console.Write(*\x48\x65\x6c\x6f\r\n*);Console.Write(*\x57\x6f\x72\x6c\n*);K運行結(jié)果]]SIC:\VIND0VS\systeB32\...二口XHelo HiUorl*請按任意鍵繼續(xù)...±1I「代碼分析ヨ本例使用轉(zhuǎn)義字符在屏幕上打印’HelloWorld",多個轉(zhuǎn)義字符在ー起時可以把它們放在雙引號內(nèi)。>字符變量字符變量用來存放字符常量,注意只能放ー個字符,ー個字符變量中只能存放一個字符常量。字符變量的定義方式:charcl,c2;cl和c2為字符變量,可以各放ー個字符,我們可以使用賦值語句:cl='a';c2='b'四、實數(shù)類型實數(shù)在C#語言中稱為浮點數(shù)。在程序中有2種表現(xiàn)形式。十進(jìn)制數(shù)形式:十進(jìn)制數(shù)由數(shù)字和小數(shù)點組成。。.158(也可以表示在.158)、125.0、〇〇等都是十進(jìn)制形式的實數(shù)。指數(shù)形式:指數(shù)形式又叫科學(xué)計數(shù)法,如12363或123£3都代表123*10\E或e之前必須有數(shù)字,且E后的指數(shù)必須為整數(shù)。數(shù)據(jù)類型描述float32-bit單精度浮點數(shù)double64-bit雙精度浮點數(shù)decimal28個有效數(shù)字的128-bit十進(jìn)制類型1、實型變量C#中有2種基本浮點格式:單精度和雙精度,float表示單精度浮點數(shù),double表示雙精度浮點數(shù)。實型常量可以使用”F‘和''D”所組成的后綴。如果未使用后綴,默認(rèn)為doublefloatf=123456789f;Console.WriteLine(f);f=12345.6789f;Console.WriteLine(f);K運行結(jié)果!]31C:\fIin)O¥S\syste...二口X1.234568E+08 ▲12345.68請按任意鍵繼續(xù)...■?1I 2J/K代碼分析]]從運行結(jié)果可以看出,float最多只能包含?位有效數(shù)字,數(shù)字123456789放入Jloat類型中將會被舍去最后2位。后3位進(jìn)行舍入計算后變?yōu)?00。于第二次賦值后,我們可以看到,經(jīng)過舍入運算后,小數(shù)點后面保留2位.我們再看ー個例子:floatf=2.58f;doubled=f+6.1;Console.WriteLine(d);K運行結(jié)果》QQC:\¥IND0TS\systeB32...-□X8.67999992370605 一請按任意鍵繼續(xù)...?J<1 」 上!ンK代碼分析!]結(jié)果可能讓人驚訝,出現(xiàn)這種錯誤的原因是float的小數(shù)部分的存儲結(jié)構(gòu)跟double不同〇/loat^double數(shù)字類型相加時將f轉(zhuǎn)換為double類型時出現(xiàn)偏差。由于默認(rèn)把ー個小數(shù)當(dāng)成double類型,所以應(yīng)當(dāng)盡量使用double進(jìn)行運算而不Afloat〇浮點運算在超出范圍時不會拋出異常。Console.WriteLine(2e300*2e300):Console.WriteLine(100d/Od);Console.WriteLine(Od/Od);
(運行結(jié)果》Q1C:\VIND0VS\systeB3...二0X無無數(shù)按—
正正看<無無數(shù)按—
正正看<C:\WIND0WS\system32\K代碼分析》第1行代碼中,2e300*2e300結(jié)果超出了double的表示范圍,返回正無窮大;第2行除數(shù)不能為0結(jié)果也返回?zé)o窮大;第3行返回非數(shù)字又表示為NaN:注意^3行代碼運行時都沒有報錯。2、decimal類型decimal類型相比double具有更高精度的,適合財務(wù)和貨幣運算。它占用128位,范圍和精度大致為28?29位有效位。Decimal的后綴為m或M。如果沒有m,系統(tǒng)將自動被視為double,從而導(dǎo)致編譯錯誤。decimal類型在進(jìn)行數(shù)學(xué)運算時,如果出現(xiàn)超出范圍或除零現(xiàn)象,將會拋出異常。五、字符串類型字符串是任何ー個應(yīng)用程序使用最多的數(shù)據(jù)類型之一。字符串常量是由一對雙括號起來的字符序列。它和字符常量不同,字符常量表示的是ー個字符,字符串是字符的集合。字符串變量用來存放字符串常量,定義方式如ド:strings); 〃定義ー個字符串變量sistrings2ゴHelloWord”;〃定義ー個字符串變量s2,并進(jìn)行初始化。1、可以使用加號(+)連接多個字符串成為ー個新的字符串。stringsi="Hello":strings2="World";si=sl+s2+"!":Console.WriteLine(sl);K輸出結(jié)果』Q]C:\VIND0VS\systea32\cB...一0XTOC\o"1-5"\h\zHelloWorld? 、」請按任意鍵繼續(xù)... コ<1I ],代碼分析ヨ定義變量sl,s2并分別賦值:第3行sl+s2+ッ通過+將變量sl,s2和常量”!”連接起來組成一個新的字符串,并將新字符串的值賦給變量3;第4行打印變量si的值到屏幕乙2、字符串的操作1)在程序中,ー個文件的路徑需要以字符串的形式來表示。如一個文件的完全路徑:“D:\Demo\C#basic\test.txt”,我們知道在字符串中、被當(dāng)作轉(zhuǎn)義字符的標(biāo)識。如果要表示一個、,必須使用\\,所以路徑名稱在中應(yīng)該寫為"D:\\Demo\\C#basic\\test.txt“?;蛘呤褂聾,@表示它后面所代表的是ー個文本,不處理轉(zhuǎn)義符。這樣路徑就可以寫為:@,,D:\\Demo\\C#basic\\test.txf,〇2)IndexOf。方法和しastIndexOf()方法這兩個方法是在字符串中搜索指定的字符或字符串索引。IndexOf。是從前向后搜索,LastlndexOf。是從后向前操作。strings="HelloWorld!Console.WriteLine(s.IndexOf("o"));Console.WriteLine(s.LastlndexOf("o"));Console.WriteLine(s.IndexOf("11"));Console.WriteLine(s.IndexOf("OK"));K運行結(jié)果1]國C:\¥INDO¥S\syste>3 ー冋x|472請按任意鍵繼續(xù)????ヨ±1 1「代碼分析)第2行,從前向后搜索字符〇在字符串中的位置,返回第一個出現(xiàn)〇的位置(字符串索引臓開始,即0位第一位);第3行,從后向前搜索,返回從后向前搜索字符串的第一個。的位置:第4行,從前向后搜索字符串II;第5行,從字符串中查找中ok,沒有找到,返回ー1,返回值一1表示無法找到匹配的字符或字符串。3、字符串的操作Trim()去掉字符串兩邊空格;ToUpper()方法把字符串內(nèi)所有的字母轉(zhuǎn)為大寫。strings=*HelloWorld!”:Console.WriteLine(*[*+s+"]");s=s.TrimO;s=s.ToUpper();Console.WriteLine(*[*+s+*]*);R運行結(jié)果)]OSC:\¥IIDOfS\syste...一回X[HelloWorldf] .[HELLOWORLD?]請按任意鍵繼續(xù)?.?<1I お『代碼分析)第1、2行代碼顯示沒有進(jìn)行方法處理的顯示結(jié)果:第3行去掉字符串前后的空格:第4行將變量s中的值統(tǒng)ー改為大寫。第5行顯示經(jīng)過處理的數(shù)據(jù)結(jié)果。い為了明顯區(qū)別顯示結(jié)果。六、數(shù)據(jù)轉(zhuǎn)換數(shù)據(jù)類型轉(zhuǎn)換是指相互兼容的數(shù)據(jù)類型之間數(shù)值的相互轉(zhuǎn)換。例如,將一個整數(shù)類型變量賦值給一個雙精度類型變量:將一個雙精度類型變量賦值給ー個整數(shù)類型變量。數(shù)值類型轉(zhuǎn)換分為隱式轉(zhuǎn)換和顯示轉(zhuǎn)換。1、隱式轉(zhuǎn)換隱式轉(zhuǎn)換是指數(shù)據(jù)類型之間轉(zhuǎn)換不需強(qiáng)制類型說明就可以進(jìn)行。隱式轉(zhuǎn)換是在C#內(nèi)部實現(xiàn)轉(zhuǎn)換,不需要任何說明。隱式數(shù)據(jù)轉(zhuǎn)換表:從到sbyteshort>int、long、float、double或decimalbyteshort、ushort、int、uint、long>ulongfloat、double或decimalshortint>long、float>double或decimal□shortint、uint、long、ulong、float、double或decimalintlong、float、double或decimaluintlong>ulong、float>double或decimallongfloat>double或decimalcharushort、int、uint、long、ulong、float.double或decimalfloatdoubleulongfloat、double或decimal如:doubled=10f+9+,a,+2.5s由于等號左邊變量d是ー個double類型,所以右邊表達(dá)式的計算結(jié)果必須是ー個double類型.由于各種數(shù)據(jù)類型之間無法進(jìn)行混合運算,所以在運算之前,必須把每個數(shù)據(jù)轉(zhuǎn)換為同一種同時可以包容這幾種數(shù)據(jù)的類型,由于2.5是double型,所有類型將先轉(zhuǎn)換為double型后オ進(jìn)行計算。①10f是?個float類型,它將被隱式地轉(zhuǎn)化為double型再進(jìn)行運算。②9被計算機(jī)默認(rèn)為int,在這里也需要被隱式地轉(zhuǎn)化為double型。③‘ガ是ー個字符型數(shù)值,它的本質(zhì)是ー個16位無符號整數(shù),也可以隱式地轉(zhuǎn)化為double型?!產(chǎn)'的Unicode編碼是97,這里將被轉(zhuǎn)化為雙精度浮點數(shù)97.④2.5是實型常數(shù),沒有后綴,計算機(jī)默認(rèn)為double,不需要進(jìn)行轉(zhuǎn)化。最終,表達(dá)式將轉(zhuǎn)化為:10d+9d+97d+2.5d,運行結(jié)果為118.5〇對于數(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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年鉗工中級工理論考核試題
- 石大學(xué)前衛(wèi)生學(xué)試卷(一)及參考答案
- 人工智能驅(qū)動的安全性能預(yù)測-洞察闡釋
- 高三復(fù)習(xí)“減數(shù)分裂”教學(xué)設(shè)計
- 新時代大學(xué)生奮斗精神現(xiàn)狀分析與培育策略
- 橙色3D立體卡通物流輔助行業(yè)營銷策劃方案
- 2025至2030年中國球浴行業(yè)投資前景及策略咨詢報告
- 2025至2030年中國特殊化學(xué)品行業(yè)投資前景及策略咨詢報告
- 2025至2030年中國燒烤盤行業(yè)投資前景及策略咨詢報告
- 2025至2030年中國淑女傘行業(yè)投資前景及策略咨詢報告
- 燃?xì)庹羝仩t拆除施工組織方案
- 大直徑泥水盾構(gòu)刀盤應(yīng)用與管理
- 重慶市安全評價收費標(biāo)準(zhǔn)
- 尾礦壩施工方案
- 教師英語口語訓(xùn)練課件(完整版)
- DG-TJ 08-2322-2020 測繪成果質(zhì)量檢驗標(biāo)準(zhǔn) 高質(zhì)量清晰版
- 風(fēng)生水起博主的投資周記
- 心臟驟停課件
- 送鮑浩然之浙東(課堂PPT)
- 血栓性淺靜脈炎
- (管樁)單樁豎向承載力特征值計算表
評論
0/150
提交評論