




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、本課程主要講授的內(nèi)容包括: C#的基本語(yǔ)法、語(yǔ)句、方法;C#面向?qū)ο缶幊碳夹g(shù);WINDOWS編程;輸入輸出;數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)等。,第一章 .Net環(huán)境和C#語(yǔ)言簡(jiǎn)介,本章內(nèi)容:,Microsoft.Net 概述 C#語(yǔ)言介紹,本章內(nèi)容:,本章主要簡(jiǎn)單介紹了Microsoft.Net和C#語(yǔ)言。首先介紹了C#語(yǔ)言的基礎(chǔ)Microsoft.Net平臺(tái)的設(shè)計(jì)理念、主要構(gòu)成和設(shè)計(jì)目標(biāo),然后介紹了C#語(yǔ)言的特點(diǎn)和運(yùn)行模型。,1.1 Microsoft.Net 概述,Microsoft.Net是微軟公司面向下一代互聯(lián)網(wǎng)軟件和服務(wù)戰(zhàn)略,它的出現(xiàn)標(biāo)志著新的軟件設(shè)計(jì)理念和服務(wù)理念的產(chǎn)生。,Microsoft.Ne
2、t是微軟公司面向下一代互聯(lián)網(wǎng)軟件和服務(wù)戰(zhàn)略,它的出現(xiàn)標(biāo)志著新的軟件設(shè)計(jì)理念和服務(wù)理念的產(chǎn)生。,一、 Microsoft.Net的設(shè)計(jì)理念,Microsoft.Net努力改變?nèi)祟?lèi)適應(yīng)機(jī)器、適應(yīng)技術(shù)的現(xiàn)狀,為各類(lèi)用戶提供一種簡(jiǎn)單的操作信息的能力,使得所以商業(yè)用戶和個(gè)人用戶都能方便查找和使用其中的信息,任何規(guī)模的公司都可以使用相同的工具與他們的供應(yīng)商、商業(yè)伙伴和客戶高效地溝通和分享信息,從而創(chuàng)建一種全新的協(xié)同工作模式:,對(duì)于用戶來(lái)說(shuō),Microsoft.Net意味更簡(jiǎn)單化的整體服務(wù):統(tǒng)一的信息瀏覽、編輯和授權(quán),查看資料,工作,聯(lián)機(jī)/脫機(jī)媒體。 對(duì)于企業(yè)來(lái)說(shuō),Microsoft.Net意味著統(tǒng)一的信息
3、瀏覽、編輯和授權(quán);豐富的同步傳播;密切的移動(dòng)通信聯(lián)系;得力的信息管理和電子商務(wù)工具,在基于Internet和Intranet的服務(wù)程序之間靈活地切換,為動(dòng)態(tài)商務(wù)伙伴關(guān)系的建立提供支持。,對(duì)獨(dú)立軟件開(kāi)發(fā)商來(lái)說(shuō),Microsoft.Net意味著創(chuàng)造基于Internet的更多新型高級(jí)服務(wù)的機(jī)會(huì),這些服務(wù)可以借助Internet自動(dòng)的從本地或遠(yuǎn)程獲取和利用所需的信息,而無(wú)須為不同的工作環(huán)境重新編寫(xiě)程序。,Microsoft.Net主要包括一下四個(gè)方面的內(nèi)容: 構(gòu)造和管理新一代服務(wù)的基本結(jié)構(gòu)和工具,包括.Net 框架(Framework) 、Visual Stdio.Net、.Net企業(yè)服務(wù)器和Wind
4、ows.Net。,二、 Microsoft.Net的組成,創(chuàng)建互聯(lián)網(wǎng)操作系統(tǒng)的構(gòu)建塊,包括PassPort.Net(用于用戶認(rèn)證)、用于文件存儲(chǔ)的服務(wù)、用戶首選項(xiàng)服務(wù)、日歷管理以及眾多的其它服務(wù)。 能夠啟用新型智能互聯(lián)網(wǎng)設(shè)備的.Net設(shè)備軟件。 .Net用戶體驗(yàn)。,三、 .Net框架和C#,.Net框架是.Net平臺(tái)基礎(chǔ)架構(gòu),它消除了各類(lèi)編程語(yǔ)言之間的差別,從而實(shí)現(xiàn)了跨語(yǔ)言平臺(tái)編程的能力。.Net的這種能力主要來(lái)源于公共語(yǔ)言運(yùn)行時(shí)(Common Language Runtime,CLR)和類(lèi)庫(kù)。公共語(yǔ)言運(yùn)行時(shí)和類(lèi)庫(kù)(Windows Forms,ADO.Net和ASP.Net)統(tǒng)一了各類(lèi)語(yǔ)言類(lèi)型
5、,從而使得各種編程語(yǔ)言間無(wú)縫集成成為可能。,C#(讀C sharp)語(yǔ)言就是微軟為解決上述問(wèn)題而設(shè)計(jì)的,它是微軟公司為.Net計(jì)劃開(kāi)發(fā)推出的核心編程語(yǔ)言,該語(yǔ)言幾乎綜合了目前所有編程語(yǔ)言的優(yōu)點(diǎn)。C#是一種現(xiàn)代的面向?qū)ο蟮某绦蜷_(kāi)發(fā)語(yǔ)言,開(kāi)發(fā)人員能夠利用它在.Net平臺(tái)上快速開(kāi)發(fā)種類(lèi)豐富的應(yīng)用程序,并可以轉(zhuǎn)換為Web服務(wù)。,1.2 C# 語(yǔ)言介紹,C#語(yǔ)言是專(zhuān)門(mén)為.Net應(yīng)用而開(kāi)發(fā)的語(yǔ)言,并且在設(shè)計(jì)過(guò)程中綜合了其它編程語(yǔ)言的優(yōu)點(diǎn),即滿足了應(yīng)用程序的快速開(kāi)發(fā)能力,又沒(méi)有犧牲各種靈活性,同時(shí)它忠實(shí)地繼承了C和C+的優(yōu)點(diǎn),一、 C#的語(yǔ)言特點(diǎn),C#語(yǔ)言作為一種新生語(yǔ)言與其它編程語(yǔ)言相比有一下幾個(gè)突出的特
6、點(diǎn): 簡(jiǎn)潔的語(yǔ)法 面向?qū)ο蟮奶攸c(diǎn) 與Web的緊密結(jié)合 安全性和錯(cuò)誤處理 版本處理 靈活性與兼容性,二、 C#的運(yùn)行模型,目前用高級(jí)語(yǔ)言編寫(xiě)的程序有兩種形式,一種是被編譯成機(jī)器語(yǔ)言在CPU上執(zhí)行,如Visual C+,Pascal等。另外一種是邊解釋邊執(zhí)行的,稱(chēng)為解釋性語(yǔ)言,如Visual FoxFro,Visual Bsasic3.0等。,三、C#的運(yùn)行模型,中間語(yǔ)言(Intermediate Language,IL)中間語(yǔ)言是一種與硬件平臺(tái)無(wú)關(guān)的指令集 (Instruction Set)使得C#編寫(xiě)的程序可以在任何支持.Net的系統(tǒng)上運(yùn)行.,操作系統(tǒng),.NET環(huán)境,C# 代碼,CSC.exe
7、,IL 文件,OS Loader,類(lèi)加載器,程 序 內(nèi) 存 映 象,JIT編譯器,可執(zhí)行代碼,類(lèi)庫(kù) 文件,安全性檢查,Cpu執(zhí)行,本章小節(jié),本章對(duì)Microsoft.Net平臺(tái)和C#語(yǔ)言進(jìn)行了簡(jiǎn)要的介紹,通過(guò)本章學(xué)習(xí),讀者可以學(xué)習(xí)到.Net構(gòu)建理念和組成,C#語(yǔ)言特點(diǎn)和運(yùn)行模型等內(nèi)容。學(xué)習(xí)完本章,應(yīng)該重點(diǎn)掌握以下內(nèi)容:,Microsoft.Net由構(gòu)造和管理新一代服務(wù)的基本結(jié)構(gòu)和工具、創(chuàng)建互聯(lián)網(wǎng)操作系統(tǒng)的構(gòu)建塊、能夠啟用新型智能互聯(lián)網(wǎng)設(shè)備的.Net設(shè)備軟件和.Net用戶體驗(yàn),四部分構(gòu)成,其中.Net Framework是.Net平臺(tái)的基礎(chǔ),它消除了各類(lèi)編程框架之間的差異,實(shí)現(xiàn)了跨語(yǔ)言編程的能力
8、。 C#語(yǔ)言具有簡(jiǎn)潔的語(yǔ)法、面向?qū)ο?、與Web的緊密結(jié)合、安全性和錯(cuò)誤處理等特點(diǎn)。,C#程序并不是一次編譯后執(zhí)行的,而是先編譯成中間代碼,然后在.Net環(huán)境由JIT編譯器邊編譯邊運(yùn)行的,這樣實(shí)現(xiàn)的最大好處是消除了編程語(yǔ)言的差異,節(jié)約了系統(tǒng)資源。 .Net平臺(tái)帶來(lái)的新概念:中間代碼、運(yùn)行時(shí)編譯、元數(shù)據(jù)、垃圾回收器。,第二章 . Visual Studio.Net 集成開(kāi)發(fā)環(huán)境,本章內(nèi)容:,Visual Studio.Net 集成開(kāi)發(fā)環(huán)境的安裝 Visual Studio.Net 集成開(kāi)發(fā)環(huán)境介紹 .Net集成開(kāi)發(fā)環(huán)境上C#程序開(kāi)發(fā),本章內(nèi)容:,本章主要介紹C#程序集成開(kāi)發(fā)環(huán)境Visual Stu
9、dio.NET的安裝方法,IDE中窗口、選項(xiàng)和幫助的內(nèi)容,以及在Visual Studio.NET上進(jìn)行C#程序開(kāi)發(fā)的一般原則。,2.1 Visual Studio.Net 集成開(kāi)發(fā)環(huán)境的安裝,為了確保安裝成功,應(yīng)該在安裝Visual Studio.Net之前完成以下任務(wù): 確保硬件滿足最低要求。 確保操作系統(tǒng)滿足安裝要求。 獲取和Visual Studio.Net有關(guān)的組件,一、硬件和系統(tǒng)需求,在安裝Visual Studio.Net之前,要確保計(jì)算機(jī)滿足以下的最小硬件需求: 奔騰II系列,450MHZ,推薦使用奔騰III 733MHZ以上配置 內(nèi)存128MB,推薦使用256MB以上配置 8
10、00600,256色顯示器以上配置 一個(gè)CD-ROM驅(qū)動(dòng)器 操作系統(tǒng):Windows 98,Windows NT 4.0,Microsoft Windows2000,Windows XP,Windows Server2003,二、安裝必要的組件,在安裝Visual Studio.Net之前,需要在系統(tǒng)上安裝必要的Windows組件,主要包括: Windows NT 4.0 Service Pack 6a Windows 2000 Service Pack 2 Microsoft Windows Installer 2.0 Microsoft Windows Management Infrast
11、ructure Microsoft FrontPage 2000 Web Extensions Client,以上組件并不一定都要安裝,具體要安裝的組件要根據(jù)操作系統(tǒng)的情況來(lái)定,最簡(jiǎn)單的方式是使用Microsoft Windows Component Update光盤(pán)(即Visual Studio.Net CD3)進(jìn)行組件的安裝:,1) 將Microsoft Windows Component Update光盤(pán)放入光驅(qū),如果光盤(pán)不能自動(dòng)播放,則在光盤(pán)中查找Setup.exe,雙擊運(yùn)行即可顯示圖2-1的界面。,圖2-1 安裝程序,2) 信息裝載完畢后,就會(huì)彈出對(duì)話框中顯示安裝的各種組件,如圖2-
12、2所示,有時(shí)會(huì)彈出一個(gè)警告對(duì)話框提示你使用CD1安裝,這時(shí)點(diǎn)擊“否”按鈕。,圖2-2 組件安裝對(duì)話框,3) 點(diǎn)擊“立即安裝!”,開(kāi)始安裝相應(yīng)的組件。 4) 安裝完畢后,點(diǎn)擊“完成”,如圖2-3所示,就完成了相關(guān)組件的安裝工作。,圖 2-3 組件安裝結(jié)束界面,Visual Studio.NET的安裝程序存放在CD1和CD2盤(pán)上,用戶可以使用光盤(pán)安裝也可以將CD1和CD2盤(pán)上的內(nèi)容合并拷貝到硬盤(pán)上安裝,我們以光盤(pán)安裝介紹其安裝過(guò)程。,三、在Windows XP平臺(tái)上安裝Visual Studio.Net,1)將CD1放入光驅(qū),程序會(huì)自動(dòng)運(yùn)行,彈出系統(tǒng)檢測(cè)對(duì)話框,檢測(cè)過(guò)后會(huì)彈出選擇安裝Visual
13、Studio.NET對(duì)話框,如圖2-4所示。,圖2-4 Visual Studio.NET安裝程序,2)選擇“2 現(xiàn)在即可安裝Visual Studio.NET”,系統(tǒng)進(jìn)而安裝初始化。 3)系統(tǒng)初始化完成之后,彈出安裝界面,選擇“同意”,點(diǎn)擊“繼續(xù)”進(jìn)入安裝程序選擇頁(yè),如圖2-5所示。,圖2-5 安裝程序選擇頁(yè),4)根據(jù)圖2-5所示,在“功能屬性”欄中為Visual Studio.Net選擇安裝目錄,同時(shí)在左欄中的“選擇要安裝的項(xiàng)”下,選擇要安裝的組件,然后點(diǎn)擊“立即安裝!”,進(jìn)行安裝過(guò)程,如圖2-6所示。,圖2-6 安裝過(guò)程5,5)在安裝過(guò)程中,系統(tǒng)會(huì)提示更換安裝盤(pán)CD2,這時(shí)將CD2安裝盤(pán)
14、插入光驅(qū),繼續(xù)安裝,當(dāng)安裝完成后出現(xiàn)圖2-6所示界面,點(diǎn)擊右下角的“完成”標(biāo)簽。,圖2-6 安裝完成界面,6)至此,安裝結(jié)束。界面會(huì)返回到初試安裝界面圖2-4,此時(shí)圖標(biāo)3(產(chǎn)品文檔)項(xiàng)為選中狀態(tài),用戶可以選擇3安裝MSDN庫(kù),或者選擇“退出”以后安裝該文檔庫(kù)。,一、啟動(dòng)Visual Studio.Net 集成開(kāi)發(fā)環(huán)境,2.2 Visual Studio.Net 集成開(kāi)發(fā)環(huán)境介紹,在成功安裝Visual Studio.Net之后,在“開(kāi)始”菜單中“所有程序”項(xiàng)中選擇“Microsoft Visual Studio.Net 2003”,即可啟動(dòng)Visual Studio.Net集成開(kāi)發(fā)環(huán)境,如圖2
15、-7所示。,圖2-7 啟動(dòng)Visual Studio.Net,這時(shí)屏幕上會(huì)出現(xiàn)啟動(dòng)畫(huà)面如圖2-8所示,從畫(huà)面上可以看出Visual Studio.Net開(kāi)發(fā)環(huán)境中目前包含的產(chǎn)品。,圖2-8 啟動(dòng)界面圖,啟動(dòng)界面消失后就正式進(jìn)入了Visual Studio.Net集成開(kāi)發(fā)環(huán)境,首次運(yùn)行會(huì)顯示【起始頁(yè)】如圖2-9所示,該頁(yè)包含【項(xiàng)目】、【聯(lián)機(jī)資源】、【我的配置文件】三個(gè)可選頁(yè)。,圖2-8 Visual Studio.Net的【起始頁(yè)】,【項(xiàng)目】頁(yè)中顯示了最近一段時(shí)間內(nèi)打開(kāi)過(guò)的項(xiàng)目,以方便用戶查找,由于第一次進(jìn)入所以沒(méi)有項(xiàng)目顯示。該頁(yè)上還有兩按鈕:【新建項(xiàng)目】和【打開(kāi)項(xiàng)目】。點(diǎn)擊【新建項(xiàng)目】會(huì)彈出【
16、新建項(xiàng)目】對(duì)話框,從中可以創(chuàng)建C#項(xiàng)目。 【聯(lián)機(jī)資源】頁(yè)顯示了Visual Studio.Net的新特性如圖2-9所示,【新增功能】部分顯示了Visual Studio.Net的新特性,包括下載示例代碼和新的編程工具。,圖2-9 【聯(lián)機(jī)資源】欄,二、 Visual Studio.Net 的窗口,Visual Studio.Net向用戶提供了瀏覽文件和自定義控件的窗口。本節(jié)將討論開(kāi)發(fā)C#應(yīng)用程序必須的窗口??赏ㄟ^(guò)位于菜單欄下面、工具欄右部的一些工具欄圖標(biāo)訪問(wèn)這些窗口如圖2-10所示,或者從【視圖】菜單中選擇所需窗口的名稱(chēng)來(lái)訪問(wèn)它。,1 【解決方案資源管理器】窗口,【解決方案資源管理器】窗口列出了
17、所有解決方案中的文件,當(dāng)創(chuàng)建一個(gè)新項(xiàng)目或者現(xiàn)存的項(xiàng)目被打開(kāi)時(shí),【解決方案資源管理器】窗口將顯示這個(gè)項(xiàng)目的內(nèi)容。圖2-11顯示了打開(kāi)一個(gè)C#項(xiàng)目時(shí)【解決方案資源管理器】窗口的內(nèi)容。,2【屬性】窗口,【屬性】窗口用于操縱一個(gè)窗體或者控件的屬性如圖2-12所示。屬性定義了控件的信息,例如大小、顏色、字體等,每個(gè)控件都有自己的一組屬性。當(dāng)選中某個(gè)屬性時(shí),【屬性】窗口下方會(huì)顯示該屬性的描述。,3 【工具欄】窗口,【工具欄】窗口如圖2-13所示,包含了可重用的組件或者控件,用于自定義應(yīng)用程序。用戶在編程時(shí)可以在窗體中“拖放”已有的控件,省去了自己編寫(xiě)代碼的麻煩。這種方法是目前可視化編程中最常用的技術(shù),通過(guò)
18、組件或者控件,用戶可以很快編寫(xiě)出需要的應(yīng)用程序,從而滿足了軟件的快速開(kāi)發(fā)要求。,三、Visual Studio.Net 的菜單,Visual Studio.Net的菜單主要包括:【文件】菜單組、【編輯】菜單組、【視圖】菜單組、【項(xiàng)目】菜單組、【生成】菜單組、【調(diào)試】菜單組、【工具】菜單組和【窗口】菜單組。下面將一一介紹這些菜單組的內(nèi)容和使用方法。,1 【文件】菜單組,文件菜單組主要包括了與文件相關(guān)的操作命令,用戶單擊Visual Studio.Net集成開(kāi)發(fā)環(huán)境中的【文件】菜單會(huì)彈出如圖2-14所示的菜單欄,主要包括以下命令:,1)【新建】 【新建】主要實(shí)現(xiàn)兩個(gè)子命令:【項(xiàng)目】和【文件】,如圖
19、2-15。選擇【項(xiàng)目】命令,將會(huì)彈出【新建項(xiàng)目】對(duì)話框,通過(guò)該對(duì)話框我們可以創(chuàng)建C#工程。選擇【文件】命令,將出現(xiàn)【新建文件】對(duì)話框,通過(guò)該對(duì)話框可以創(chuàng)建不同類(lèi)型的文件。 圖2-14 【文件】菜單組,圖2-14 【文件】菜單組,圖2-15 【新建】子菜單,圖2-15 【打開(kāi)】子菜單,2)【打開(kāi)】 【打開(kāi)】菜單包括四個(gè)子菜單:【項(xiàng)目】、【W(wǎng)eb上的項(xiàng)目】、【文件】、【來(lái)自Web的文件】,如圖2-15所示。,3)【關(guān)閉】 該命令用于關(guān)閉打開(kāi)的文件,有以下三種執(zhí)行方式: 若當(dāng)前沒(méi)有文件打開(kāi),該命令不可用 若當(dāng)前打開(kāi)文件沒(méi)有被保存或者已經(jīng)被修改,則在選擇該命令后,彈出一個(gè)消息對(duì)話框,詢問(wèn)是否保存當(dāng)前文
20、件內(nèi)容。 如果有多個(gè)文件處于打開(kāi)狀態(tài),選擇該命令只能關(guān)閉當(dāng)前活動(dòng)的文件。,4)【添加項(xiàng)目】 該子菜單包含三個(gè)命令:【新建項(xiàng)目】、【現(xiàn)有項(xiàng)目】和【W(wǎng)eb上的項(xiàng)目】。、 5)【保存】 該命令用于保存當(dāng)前活動(dòng)窗口文件內(nèi)容,該命令有兩種執(zhí)行方式: 若當(dāng)前文件處于打開(kāi)狀態(tài),則該命令不可用 若當(dāng)前文件為新建文件,則該命令將激活【另存為】對(duì)話框,如圖2-16所示。,6)【另存為】 該命令用于保存一個(gè)新建的窗口或者當(dāng)前編輯的窗口內(nèi)容到不同的文件去,選擇該命令將彈出【另存為】對(duì)話框,通過(guò)該對(duì)話框你可以指定要保存文件的位置。如果當(dāng)前沒(méi)有文件處于打開(kāi)狀態(tài),該命令為不可用狀態(tài)。,圖2-16 【另存為】對(duì)話框,7)【全
21、部保存】 該命令用于保存當(dāng)前打開(kāi)的所有文件。 8)【源代碼管理】 該子菜單包含了軟件工程中代碼管理的幾 個(gè)主要內(nèi)容。 9)【頁(yè)面設(shè)置】 該命令主要用于設(shè)置打印選項(xiàng)。 10)【打印】 該命令完成文件的打印工作。,11)【最近的文件】 該菜單包含最近打開(kāi)的文件,最多可以列出4個(gè)文件名,這些文件名列表為該對(duì)應(yīng)文件的快捷打開(kāi)方式,選擇其中一個(gè)文件名,就能打開(kāi)該文件。 12)【最近的項(xiàng)目】 該菜單包含最近打開(kāi)的項(xiàng)目名,最多可以列出4個(gè)項(xiàng)目名。 13)【退出】 通過(guò)該命令,能退出Visual Studio.Net集成開(kāi)發(fā)環(huán)境,如果當(dāng)前工程有沒(méi)有保存的文件,將彈出警告框。,2【編輯】菜單組,【編輯】菜單組如
22、圖2-17所示,為用戶提供了文件編輯命令,主要包括: 1)【撤銷(xiāo)】 該命令用于恢復(fù)用戶最近一次的編輯,圖2-17【編輯】菜單組,2)【重復(fù)】 該命令用于恢復(fù)被【撤銷(xiāo)】的操縱。其快捷鍵為Ctrl+Z。 3)【剪切】 將當(dāng)前活動(dòng)窗口選中的內(nèi)容剪切到剪切板中。 4)【復(fù)制】 將當(dāng)前活動(dòng)窗口選中的內(nèi)容復(fù)制到剪切板中。,5)【粘貼】 將剪切板中內(nèi)容拷貝到當(dāng)前光標(biāo)所在的位置,如果當(dāng)前有選中的部分,則用剪切板中的內(nèi)容替代當(dāng)前選中部分。 6)【循環(huán)應(yīng)用剪貼板中的復(fù)制項(xiàng)】 循環(huán)替代剪切板中當(dāng)前活動(dòng)內(nèi)容。 7)【刪除】 將當(dāng)前活動(dòng)窗口中選定的內(nèi)容刪除。,8)【全選】 將當(dāng)前活動(dòng)窗口中的內(nèi)容全部選中??旖萱ICtrl
23、+A。 9)【查找和替換】 該子菜單包括五個(gè)命令:查找、替換、在文件中查找、在文件中替換和查找字符。提供這些命令,可以在當(dāng)前活動(dòng)文檔,或者指定文件中尋找或者替代指定的內(nèi)容或字符。 10)【轉(zhuǎn)到】 將光標(biāo)快速移動(dòng)到當(dāng)前活動(dòng)窗口中指定位置。,11)【將文件作為文本插入】 選擇該命令將彈出打開(kāi)文件對(duì)話框,如圖2-18所示,并所選定的文件內(nèi)容插入到當(dāng)前光標(biāo)所在位置。,圖2-18 【插入文件】對(duì)話框,12)【高級(jí)】 該子菜單項(xiàng)包含了用于進(jìn)行高級(jí)查找、選擇和文本處理操作的命令。 13)【書(shū)簽】 該子菜單項(xiàng)包含了用于文件書(shū)簽管理的命令。 14)【大綱顯示】 該子菜單包含了用于管理視圖大綱。 15)【智能感知
24、】 該子菜單包含了列出成員、參數(shù)信息、完成單詞等智能化操縱。,3【視圖】菜單組,【視圖】菜單組如圖2-19所示,主要用于Visual Studio.Net集成開(kāi)發(fā)環(huán)境中的窗口顯示,主要包括: 1)【代碼】 該命令用于顯示窗體對(duì)于的代碼。 2)【設(shè)計(jì)器】 該命令用于顯示窗體的設(shè)計(jì)模式。 3)【打開(kāi)】 該命令用于打開(kāi)當(dāng)前方案管理器、類(lèi)視圖等項(xiàng)中的條目。,4)【打開(kāi)方式】 該命令用于設(shè)置出來(lái)文件的編輯器種類(lèi)。,圖2-19 【視圖】菜單組,圖2-20 【顯示任務(wù)】子窗口,5)【解決方案資源管理器】 該命令用于顯示解決方案資源管理器窗口。 6)【類(lèi)視圖】 該命令用于顯示類(lèi)視圖窗口。 7)【服務(wù)資源管理器
25、】 該命令用于顯示服務(wù)資源管理器窗口。 8)【資源視圖】 該命令用于顯示資源視圖窗口。 9)【屬性窗口】 該命令用于顯示屬性窗口。,10)【對(duì)象瀏覽器】 該命令用于顯示對(duì)象瀏覽器窗口。 11)【工具箱】 該命令用于顯示工具箱窗口。 12)【W(wǎng)eb瀏覽器】 該命令用于在IDE環(huán)境中實(shí)現(xiàn)IE功能。 13)【其他窗口】 該命令用于顯示諸如文檔大綱窗口、輸出窗口和輸出窗口等窗口內(nèi)容。 14)【顯示任務(wù)】 該命令用于管理任務(wù)清單中的顯示內(nèi)容如圖2-20所示。,15)【工具欄】 該命令用于指定將在屏幕上顯示的工具欄。 16)【全屏】 通過(guò)該命令,可以選擇當(dāng)前活動(dòng)窗口以全屏方式顯示,當(dāng)處于全屏方式顯示時(shí),可
26、以通過(guò)單擊Esc鍵切換會(huì)原理的顯示方式。 17)【向前定位】 該命令相當(dāng)于“前進(jìn)”按鈕,選擇該命令,可以前進(jìn)到上一個(gè)打開(kāi)的窗口中。,18)【向后定位】 該命令相當(dāng)于“后退”按鈕,選擇該命令,可以后進(jìn)到上一個(gè)打開(kāi)的窗口中。 19)【屬性頁(yè)】 通過(guò)該命令,將會(huì)彈出屬性頁(yè)對(duì)話框,通過(guò)該對(duì)話框,可以設(shè)置對(duì)象的屬性。,4【項(xiàng)目】菜單組,【項(xiàng)目】菜單組主要包含于項(xiàng)目有關(guān)的操縱和命令,如圖2-22所示,包含以下命令: 圖2-22 【項(xiàng)目】菜單組 1)【添加Windows窗體】 通過(guò)該命令,將會(huì)彈出【添加新項(xiàng)】對(duì)話框,通過(guò)該對(duì)話框可以向當(dāng)前工程中添加Windows窗口。 2)【添加繼承窗體】 通過(guò)該命令,將會(huì)
27、彈出【添加新項(xiàng)】對(duì)話框,通過(guò)該對(duì)話框中的【繼承的窗體】項(xiàng)可以添加繼承窗體。,3)【添加用戶控件】 通過(guò)該命令,將會(huì)彈出【添加新項(xiàng)】對(duì)話框,通過(guò)該對(duì)話框中的【用戶控件】項(xiàng)可以添加用戶控件。 4)【添加繼承的控件】 通過(guò)該命令,將會(huì)彈出【添加新項(xiàng)】對(duì)話框,通過(guò)該對(duì)話框中的【繼承的用戶控件】項(xiàng)可以添加繼承的用戶控件。 5)【添加組件】 通過(guò)該命令,將會(huì)彈出【添加新項(xiàng)】對(duì)話框,通過(guò)該對(duì)話框中的【組件類(lèi)】項(xiàng)可以添加組件,確認(rèn)后就可以從工具箱或服務(wù)器管理器中選擇合適的組件拖動(dòng)到設(shè)計(jì)器中。,6)【添加類(lèi)】 通過(guò)該命令,將會(huì)彈出【添加新項(xiàng)】對(duì)話框,通過(guò)該對(duì)話框中的【類(lèi)】項(xiàng)可以添加類(lèi)。 7)【添加新項(xiàng)】 通過(guò)該
28、命令,將會(huì)彈出【添加新項(xiàng)】對(duì)話框,通過(guò)該對(duì)話框中的【項(xiàng)目】項(xiàng)可以添加繼承窗體。 8)【添加現(xiàn)有項(xiàng)】 通過(guò)該命令將出現(xiàn)【條目選擇】對(duì)話框,通過(guò)該對(duì)話框,可以選擇將要添加的條目。 9)【添加引用】 選擇該命令將出現(xiàn)【添加引用】對(duì)話框,通過(guò)該對(duì)話框,可以選擇將要添加所需要的引用。,10)【添加Web引用】 選擇該命令將出現(xiàn)【添加Web引用】對(duì)話框,通過(guò)該對(duì)話框,可以選擇尋找網(wǎng)頁(yè)上的引用。 11)【設(shè)為啟動(dòng)項(xiàng)目】 該命令將當(dāng)前工程設(shè)置為啟動(dòng)工程,這樣每次啟動(dòng)Visual C#.Net時(shí)自動(dòng)地加載該項(xiàng)目。,5【生成】菜單組,圖2-21 【生成】菜單組 【生成】菜單組包含與編譯、鏈接有關(guān)的命令,如圖2-2
29、2所示,主要包括: 1)【生成】 該命令編譯和鏈接工程中所有被修改過(guò)的文件,并將警告信息和錯(cuò)誤信息輸出到輸出對(duì)話框中。 2)【重新生成】 該命令重新編譯和鏈接當(dāng)前工程。 3)【批生成】 選擇該命令將出現(xiàn)【批生成】對(duì)話框,如圖2-23所示,使用該對(duì)話框可以建立多個(gè)工程的編譯配置。,圖2-21 【生成】菜單組,圖2-23【批生成】對(duì)話框,圖2-24 【配置管理器】對(duì)話框,4)【配置管理器】 選擇該命令將出現(xiàn)【配置管理器】對(duì)話框,如圖2-24所示。使用該對(duì)話框可以建立多個(gè)工程的編譯配置。,6【調(diào)試】菜單組,【調(diào)試】菜單組主要包括于程序調(diào)試有關(guān)的命令,如圖2-25所示,主要包括以下命令: 圖2-25
30、【調(diào)試】菜單組,圖2-25 【調(diào)試】菜單組,1)【窗口】 【窗口】子菜單主要用于顯示斷點(diǎn)、異常和命令窗口。 2)【啟動(dòng)】 編譯運(yùn)行當(dāng)前工程。 3)【開(kāi)始執(zhí)行】 在無(wú)調(diào)試模式下編譯并運(yùn)行當(dāng)前工程。 4)【進(jìn)程】 顯示當(dāng)前系統(tǒng)中存在的進(jìn)程。 5)【異?!?當(dāng)選擇該命令時(shí),會(huì)顯示【異?!繉?duì)話框,該對(duì)話框顯示系統(tǒng)能夠捕獲的所有異常類(lèi)型。,6)【逐語(yǔ)句】 單步運(yùn)行程序,按照語(yǔ)句為單位運(yùn)行。 7)【逐過(guò)程】 按照過(guò)程或者函數(shù)作為運(yùn)行單位,遇到函數(shù)不跳入執(zhí)行。 8)【新斷點(diǎn)】 選擇該命令后,會(huì)在鼠標(biāo)所在行加入斷點(diǎn)。 9)【清除所有斷點(diǎn)】 選擇該命令可清除所有設(shè)置過(guò)的斷點(diǎn)信息。,7【工具】菜單組,【工具】菜單
31、組如圖2-26所示,主要包括以下命令: 1)【拼寫(xiě)檢查】 圖2-26 【工具】菜單組 用于鏈接外部的拼寫(xiě)檢查程序?qū)?xiàng)目進(jìn)行拼寫(xiě)檢查。 2)【調(diào)試進(jìn)程】 選擇該命令后,會(huì)顯示【進(jìn)程】對(duì)話框,該對(duì)話框顯示本機(jī)所有可能進(jìn)程。 3)【連接到設(shè)備】 用于連接外部設(shè)備。,4)【連接到數(shù)據(jù)庫(kù)】 選擇該命令將出現(xiàn)【數(shù)據(jù)連接屬性】對(duì)話框,通過(guò)該對(duì)話框可以連接到數(shù)據(jù)庫(kù)。 5)【外部程序管理器】 選擇該命令還會(huì)出現(xiàn)【外部程序管理器】對(duì)話框,該對(duì)話框會(huì)顯示當(dāng)前可用的外部程序。 6)【生成注釋W(xué)eb頁(yè)】 為當(dāng)前工程構(gòu)造注釋網(wǎng)頁(yè)。 7)【宏】 可以管理和錄制宏。 8)【創(chuàng)建GUID】 生成GUID編號(hào)的工具。,9)【AT
32、L/MFC跟蹤工具】 設(shè)置ATL/MFC的跟蹤行為。 10)【OLE/COM對(duì)象察看器】 提供安裝在系統(tǒng)上的所有OLE和COM對(duì)象的信息。 11)【Spy+】 提供觀察Windows操縱細(xì)節(jié)的方法,允許用戶觀察所有的過(guò)程線程、窗口和Windows發(fā)送的消息。 12)【外部工具】 用于選擇Visual Studio.Net繼承開(kāi)發(fā)環(huán)境中使用的外部工具。,13)【自定義】 選擇該命令,會(huì)顯示【自定義】對(duì)話框,用戶可以提供這個(gè)對(duì)話框定制命令、工具欄、菜單和快捷鍵。 14)【選項(xiàng)】 選擇該命令將會(huì)彈出【選項(xiàng)】對(duì)話框,在該對(duì)話框中可以設(shè)置系統(tǒng)的行為。,8【窗口】菜單組,【窗口】菜單組包含用于操縱窗口的命
33、令,如圖2-27所示,主要包括: 1)【新建窗口】 打開(kāi)和當(dāng)前活動(dòng)窗口包含相同文檔的另一個(gè)窗口,并成為當(dāng)前活動(dòng)窗口,兩個(gè)窗口的內(nèi)容保持同步編號(hào)。 2)【拆分】 圖2-27 【窗口】菜單組 將當(dāng)前窗口拆分成多個(gè)窗格,這個(gè)可以方便地查看同一個(gè)文檔的不同部分。,3)【可??俊?允許/禁止當(dāng)前活動(dòng)窗口的停靠特征。 4)【隱藏】 隱藏當(dāng)前活動(dòng)的窗口。 5)【浮動(dòng)】 允許/禁止當(dāng)前活動(dòng)窗口的浮動(dòng)特征。 6)【自動(dòng)全部隱藏】 允許/禁止全部窗口的浮動(dòng)特征。 7)【關(guān)閉所有文檔】 如果項(xiàng)目中有沒(méi)有保存的文件,系統(tǒng)會(huì)顯示提示信息。 8)【窗口】 列出最近打開(kāi)的窗口文件名,最多可以列出10個(gè)。,2.3 Net集成
34、開(kāi)發(fā)環(huán)境上C#程序開(kāi)發(fā),C#應(yīng)用程序的創(chuàng)建 1)創(chuàng)建新項(xiàng)目,2.3 Net集成開(kāi)發(fā)環(huán)境上C#程序開(kāi)發(fā),C#應(yīng)用程序的創(chuàng)建 2)添加代碼,2.3 Net集成開(kāi)發(fā)環(huán)境上C#程序開(kāi)發(fā),C#應(yīng)用程序的創(chuàng)建 3)運(yùn)行程序 保存項(xiàng)目,2.3 Net集成開(kāi)發(fā)環(huán)境上C#程序開(kāi)發(fā),C#程序的典型布局 1using System; 2namespace ASimpleProject 3 4/ 5/ Class1 的摘要說(shuō)明。 6/ 7class Class1 8 9/ 10/ 應(yīng)用程序的主入口點(diǎn)。 12/ 13STAThread 14static void Main(string args) 15 16/ 17/
35、 TODO: 在此處添加代碼以啟動(dòng)應(yīng)用程序 18/ 19Console.WriteLine(Hello World!); 20 21 22,本章小結(jié),Visual Studio.Net集成開(kāi)發(fā)環(huán)境是微軟提供的,用于創(chuàng)建、運(yùn)行和調(diào)試各種.NET編程語(yǔ)言的程序。本章我們主要介紹了該集成開(kāi)發(fā)環(huán)境的安裝方法,以及它提供的窗口和菜單的各個(gè)功能,最后我們使用該集成開(kāi)發(fā)環(huán)境創(chuàng)建了一個(gè)典型的C#應(yīng)用程序,并介紹了進(jìn)行C#開(kāi)發(fā)的一般步驟和典型布局 。,第3章 C#的基本語(yǔ)法,本章內(nèi)容,C#的基本語(yǔ)法, C#的詞法結(jié)構(gòu) 數(shù)據(jù)類(lèi)型 表達(dá)式 操作符,3.1詞法結(jié)構(gòu),詞法是構(gòu)成程序設(shè)計(jì)語(yǔ)言的最基本單位,程序是由若干個(gè)語(yǔ)
36、句構(gòu)成,而語(yǔ)句是由若干個(gè)具有特殊含義的單詞和運(yùn)算符構(gòu)成的,所以學(xué)習(xí)一門(mén)新語(yǔ)言,首先應(yīng)該從詞法入手。,3.1.1標(biāo)識(shí)符,標(biāo)識(shí)符(identifier)是程序開(kāi)發(fā)人員為類(lèi)型、方法、變量等所選擇的名字。C#的標(biāo)識(shí)符應(yīng)當(dāng)使用字母或下劃線作為開(kāi)頭,由字母、數(shù)字、下劃線(_)和美元符號(hào)($)組成,不能包括空格、標(biāo)點(diǎn)符號(hào)和運(yùn)算符,而且標(biāo)識(shí)符的名稱(chēng)最好和實(shí)際的應(yīng)用聯(lián)系起來(lái),這樣可以使程序更容易理解 . 下面列出了合法的標(biāo)識(shí)符: Sum,average,_total,Student_name,tan$, Lotus_1_2_3 下面列出了不合法的標(biāo)識(shí)符: A.B,ab,!wait,#33.bc,3.1.1標(biāo)識(shí)符
37、,C#的標(biāo)識(shí)符區(qū)別大小寫(xiě),這和C/C+語(yǔ)言是一樣的,例如下面的三個(gè)標(biāo)識(shí)符是不同的。 Member member MemBer C#的標(biāo)識(shí)符不能與關(guān)鍵字相同,但是可以使用前綴來(lái)避免這種沖突,例如: while while 上面兩個(gè)單詞中第一個(gè)單詞是合法的標(biāo)識(shí)符,而第二個(gè)單詞不是合法標(biāo)識(shí)符,因?yàn)閣hile是個(gè)關(guān)鍵字。,3.1.2關(guān)鍵字,同C和C+語(yǔ)言一樣,C#也規(guī)定了很多關(guān)鍵字用于程序控制、數(shù)據(jù)說(shuō)明或者其它功能,由于它們的特殊意義,所以這些關(guān)鍵字不能作為標(biāo)識(shí)符使用,3.2數(shù)據(jù)類(lèi)型,C#的數(shù)據(jù)類(lèi)型采用了類(lèi)似于C和C+語(yǔ)言的數(shù)據(jù)類(lèi)型描述形式,但又有所改進(jìn)。C#將所有的數(shù)據(jù)類(lèi)型分成兩大類(lèi): 值類(lèi)型 引用
38、類(lèi)型。,3.2.1值類(lèi)型,值類(lèi)型通常用來(lái)表示基本類(lèi)型、簡(jiǎn)單類(lèi)型。C#的值類(lèi)型主要包括: 整數(shù)類(lèi)型 布爾類(lèi)型 實(shí)數(shù)類(lèi)型 字符類(lèi)型 結(jié)構(gòu)類(lèi)型 枚舉類(lèi)型,整數(shù)類(lèi)型,C#定義了8種整數(shù)類(lèi)型:短字節(jié)型(sbyte)、字節(jié)型(byte)、短整型(short)、無(wú)符號(hào)短整型(ushort)、整型(int)、無(wú)符號(hào)整型(uint)、長(zhǎng)整型(long)、無(wú)符號(hào)長(zhǎng)整型(ulong)。劃分的依據(jù)是根據(jù)這些類(lèi)型所占存儲(chǔ)器的位數(shù)。,布爾類(lèi)型,布爾類(lèi)型用來(lái)表示“真”和“假”兩個(gè)邏輯概念.在C和C+語(yǔ)言中,用0來(lái)表示“假”,用非“0”的值表示“真”,但是C#語(yǔ)言中對(duì)上述表示進(jìn)行的限制,C#中布爾類(lèi)型只能取“真”和“假”兩個(gè)
39、值,分別用true和false兩個(gè)關(guān)鍵字來(lái)表示 bool x 1; /錯(cuò)誤 ,不存在這種寫(xiě)法; bool x true; /正確,實(shí)數(shù)類(lèi)型,C#采用兩種數(shù)據(jù)類(lèi)型來(lái)表示小數(shù):?jiǎn)尉龋╢loat)和雙精度(double),兩者的差異主要取決于取值范圍和精度。,字符類(lèi)型,C#提供字符(char)處理ASCII字符和Unicode編碼的字符, ASCII字符是美國(guó)標(biāo)準(zhǔn)委員會(huì)提供的,采用7位二進(jìn)制表示的字符。 Unicode是國(guó)際標(biāo)準(zhǔn)化組織制定的采用16位二進(jìn)制表示的字符,它可以表示世界上大多數(shù)語(yǔ)言。,結(jié)構(gòu)類(lèi)型,有時(shí)需要將不同類(lèi)型的數(shù)據(jù)組合成一個(gè)有機(jī)的整體以便使用,例如要編制一個(gè)學(xué)生信息管理系統(tǒng),對(duì)全校
40、學(xué)生的信息進(jìn)行管理,一個(gè)學(xué)生具有學(xué)號(hào)、姓名、性別、年齡、地址等信息,如果使用簡(jiǎn)單數(shù)據(jù)類(lèi)型分布存儲(chǔ)這些信息的話,很難完成反映出這些信息的內(nèi)在聯(lián)系,所以應(yīng)該將它們組織成一個(gè)整體。 C#語(yǔ)言提供了結(jié)構(gòu)類(lèi)型(structure),允許用戶根據(jù)實(shí)際的需要實(shí)現(xiàn)特定的數(shù)據(jù)類(lèi)型,結(jié)構(gòu)類(lèi)型,例如學(xué)生信息管理,我們必須將一個(gè)學(xué)生的學(xué)號(hào)、姓名、性別、年齡、地址信息組合成一個(gè)新的數(shù)據(jù)類(lèi)型,我們可以采用如下形式: struct Student public int No; / 記錄學(xué)號(hào)信息 public string Name; / 記錄學(xué)生姓名 public char sex; / 學(xué)生性別 public int A
41、ge; / 學(xué)生年齡 public string Addr; / 學(xué)生的地址 Student s;,枚舉類(lèi)型,在程序設(shè)計(jì)中,有時(shí)會(huì)用到由若干個(gè)有限數(shù)據(jù)元素組成的集合,可將這些數(shù)據(jù)集合定義為枚舉類(lèi)型(enum)。 枚舉類(lèi)型定義的一般形式為:enum枚舉名 枚舉值表; 在枚舉值表中應(yīng)羅列出所有可用值,這些值也稱(chēng)為枚舉元素。,枚舉類(lèi)型,enum Weekdaysun,mon,tue,wed,thu,fri,sat; 該枚舉名為Weekday,枚舉值共有7個(gè),即一周中的七天。 按照系統(tǒng)默認(rèn),枚舉中的每個(gè)元素的類(lèi)型都是整型類(lèi)型,且第1個(gè)元素的值為0,后面的元素按照加1遞增。當(dāng)然也可以給元素之間賦值,例如
42、: enum Weekdaysun=1,mon=4,tue,wed,thu,fri,sat; 這樣sun的值為1,mon的值為4,tue的值為5,以后值按照加1遞增。,3.2.2引用類(lèi)型,引用類(lèi)型,其含義是該類(lèi)型的變量不直接存儲(chǔ)所包含的值,而是指向它所要存儲(chǔ)的值 .在C#中提供以下引用類(lèi)型給你使用: 類(lèi)類(lèi)型 字符串類(lèi)型 數(shù)組類(lèi)型 代表類(lèi)型 接口類(lèi)型,類(lèi)類(lèi)型,類(lèi)是面向?qū)ο缶幊痰幕締挝唬且环N包含數(shù)據(jù)成員,函數(shù)成員和嵌套類(lèi)型的數(shù)據(jù)結(jié)構(gòu)。類(lèi)的數(shù)據(jù)成員有常量,域和事件,函數(shù)成員包括方法,屬性,索引指示器,運(yùn)算符,構(gòu)造函數(shù)和析構(gòu)函數(shù),有關(guān)類(lèi)的深入講述我們放在第6章介紹 。,字符串類(lèi)型,在C#中有一個(gè)
43、用于操作字符串?dāng)?shù)據(jù)的基本字符串類(lèi)型,字符串類(lèi)直接派生自對(duì)象,且它是被密封的,這意味著再不能從它派生類(lèi)。就象其它類(lèi)型,字符串是預(yù)定義類(lèi)System String的一個(gè)別名。 它的用法十分簡(jiǎn)單: string myString = some text;,數(shù)組,同C語(yǔ)言一樣,C#語(yǔ)言中也有數(shù)組類(lèi)型,但是與C語(yǔ)言中數(shù)組概念相比有了很大擴(kuò)展。一個(gè)數(shù)組包含有通過(guò)計(jì)算下標(biāo)訪問(wèn)的變量,所有包含于數(shù)組中且被當(dāng)作元素的變量必須是同一類(lèi)型。這種類(lèi)型自然被稱(chēng)為數(shù)組類(lèi)型。,數(shù)組,讓我們看一下用一個(gè)數(shù)組初始化器初始化的數(shù)組: string arrLanguages = C, C+, C# ; 該簡(jiǎn)寫(xiě)效果等同以下: arr
44、Languages0=C; arrLanguages1=C+; arrLanguages2=C#;,接口類(lèi)型,一個(gè)接口是一個(gè)只有抽象成員的引用類(lèi)型。C#中的接口只有方法名,但這些方法沒(méi)有執(zhí)行代碼 。 下面我們定義一個(gè)接口IFace,它只有一個(gè)方法: interface IFace void ShowMyFace(); ,委托類(lèi)型,C#中的委托類(lèi)型和C/C+中的函數(shù)指針?lè)浅O嗨疲珻#中的委托類(lèi)型有一個(gè)特性就是不需要知道被引用的方法屬于那一個(gè)類(lèi)對(duì)象,只要函數(shù)的參數(shù)個(gè)數(shù)與返回值與委托類(lèi)型對(duì)象中的一致就可以了 。 定義一個(gè)委托類(lèi)型,該類(lèi)型名為MyDelegate: delegatestringMyDe
45、legate();,委托類(lèi)型,下面定義一個(gè)類(lèi)MyClass,該類(lèi)中包含一個(gè)名為SayHello的方法,請(qǐng)注意,該方法與我們上面聲明的委托類(lèi)型具有相同的參數(shù)個(gè)數(shù)和返回值。 publicclassMyClass publicstringSayHello() returnHellotheworld!; ,委托類(lèi)型,我們定義一個(gè)測(cè)試類(lèi)TestMyClass publicclassTestMyClass publicstaticvoidMain(stringargs) MyClassmyClass1=newMyClass(); MyDelegatemyDelegate1=newMyDelegate(my
46、Class1.SayHello); /下面就使用myDelegate1代替對(duì)象myClass1的SayHello方法 System.Console.WriteLine(myDelegate1();/輸出結(jié)果為hellotheworld!與調(diào)用myClass1.SayHello();效果相同 ,3.2.3裝箱和拆箱,裝箱和拆箱是C#類(lèi)型系統(tǒng)的核心概念。通過(guò)允許一個(gè)值類(lèi)型轉(zhuǎn)換成引用類(lèi)型對(duì)象或從引用類(lèi)型對(duì)象轉(zhuǎn)換成值類(lèi)型,這種機(jī)制形成了值類(lèi)型和引用類(lèi)型之間的捆綁連接。 裝箱轉(zhuǎn)換 給一個(gè)值裝箱是指隱式地把任何值類(lèi)型轉(zhuǎn)換成類(lèi)型對(duì)象。當(dāng)一個(gè)值類(lèi)型被裝箱時(shí),一個(gè)對(duì)象實(shí)例就被分配,且值類(lèi)型的值被拷貝給新的對(duì)象。
47、 int nvalue= 2000; object obj = nvalve;,3.2.3裝箱和拆箱,拆箱轉(zhuǎn)換 和裝箱相比,拆箱操作是顯式操作你必須告訴編譯器,想從對(duì)象中抽取出哪一種值類(lèi)型。當(dāng)執(zhí)行拆箱操作時(shí),C#編譯器檢測(cè)所請(qǐng)求的值類(lèi)型實(shí)際上存儲(chǔ)在對(duì)象實(shí)例中。經(jīng)過(guò)成功的確認(rèn),該值才能被拆箱。 下面我們舉例說(shuō)明如何進(jìn)行拆箱操作: int nvalue= 2000; object obj = nvalve; int nret = (int)obj; 上例中,我們定義了一個(gè)整形的變量、一個(gè)對(duì)象變量,然后我們將對(duì)象變量顯式轉(zhuǎn)換為整形,并賦值給整形變量nret。,3.3 變量和常量,變量 在計(jì)算機(jī)中變量
48、代表存儲(chǔ)地址,而變量的類(lèi)型決定了存儲(chǔ)在變量中的數(shù)值的類(lèi)型。 變量的命名原則應(yīng)該復(fù)合標(biāo)識(shí)符的命名規(guī)則,在命名時(shí)應(yīng)給出具有描述性質(zhì)的名稱(chēng),這樣寫(xiě)出來(lái)的程序便于理解。 常量 帶有const修飾符聲明的變量稱(chēng)為常量,常量就是其值固定不變的量 const int x = 10;,3.3 變量和常量,下面的例子說(shuō)明了各個(gè)變量的不同類(lèi)型: class A public static int x; int y; void F(int v, int a, ref int b, out int c) int i = 1; c = a + b+; 在上面的變量聲明中,x是靜態(tài)變量,y是非靜態(tài)變量,v0是數(shù)組元素,a
49、是值參數(shù),b是引用參數(shù),c是輸出參數(shù),而i是局部變量,3.3 變量和常量,靜態(tài)變量 帶有static修飾符聲明的變量稱(chēng)為靜態(tài)變量。靜態(tài)變量的生存期是從被裝載起,至到包含了這個(gè)變量的程序運(yùn)行結(jié)束為止。 非靜態(tài)變量 不帶有static 修飾符聲明的變量稱(chēng)為實(shí)例變量 數(shù)組元素 局部變量 局部變量是指在一個(gè)獨(dú)立的程序塊中聲明的變量,局部變量的生存周期只在該范圍中有效,當(dāng)程序運(yùn)行到這一范圍時(shí),該變量即開(kāi)始生效,程序離開(kāi)時(shí)變量就失效了。,3.4運(yùn)算符和表達(dá)式,C#語(yǔ)言中的運(yùn)算符和表達(dá)式,繼承了C語(yǔ)言的運(yùn)算符和表達(dá)式語(yǔ)言功能,從而使開(kāi)發(fā)人員能夠很快的從C語(yǔ)言開(kāi)發(fā)轉(zhuǎn)移到C#語(yǔ)言開(kāi)發(fā)中來(lái) 。,3.4.1運(yùn)算符的
50、分類(lèi)和優(yōu)先級(jí),依照操作符作用的操作數(shù)個(gè)數(shù)來(lái)分,可以將C#中操作符分成以下三類(lèi): 一元操作符 一元操作符作用于一個(gè)操作數(shù),按照其所處操作數(shù)的位置,有可以分為前綴操作符和后綴操作符。例如: !a 、 -x; /前綴操作符 x+ 、x-; /后綴操作符 二元操作符 二元操作符作用于兩位操作數(shù),使用時(shí)在操作數(shù)中間插入操作,例如: z = x + y 、 z = x % y ; 三元操作符 C#中僅有一個(gè)三元操作符” ? : “ 三元操作符作用于三個(gè)操作數(shù),使用時(shí)在操作數(shù)中間插入操作符,例如: a = ( b c ? 1 : 0 ),3.4.2 算術(shù)操作符和算術(shù)表達(dá)式,算術(shù)運(yùn)算符是進(jìn)行算術(shù)運(yùn)算的操作符,
51、它實(shí)現(xiàn)了數(shù)學(xué)上基本的算術(shù)運(yùn)算功能,這些運(yùn)算符包括: 加法運(yùn)算符 減法運(yùn)算符 乘法運(yùn)算符 除法運(yùn)算符 取模運(yùn)算符 “/” 操作符用來(lái)求除法的商,而“%”操作符則用來(lái)求除法的余數(shù),3.4.3賦值操作符和賦值表達(dá)式,賦值就是給一個(gè)變量賦一個(gè)新值,C#中提供的賦值表達(dá)式有:=、 +=、 -=、 *=、 /=、 %=、 /等于x = x*(y+1),3.4.4關(guān)系操作符和關(guān)系表達(dá)式,關(guān)系運(yùn)算實(shí)際上是邏輯運(yùn)算的一種,我們可以把它理解為一種判斷,判斷的結(jié)果總是布爾值。 C#中關(guān)系操作符主要包括: 比較操作符 is操作符 as操作符。,3.4.4關(guān)系操作符和關(guān)系表達(dá)式,比較操作符 C#中定義的比較操作符有:等
52、于操作符(=)、不等于操作符(!=)、小于操作符()、小于等于操作符(=) is操作符 is操作符被用于動(dòng)態(tài)地檢查運(yùn)行時(shí)對(duì)象類(lèi)型是否和給定的類(lèi)型兼容,運(yùn)算“e is T ”的表達(dá)式,其中e 是一個(gè)表達(dá)式,T 是一個(gè)類(lèi)型,該運(yùn)算返回值是一個(gè)布爾值,它表示e是否能通過(guò)引用轉(zhuǎn)換、裝箱轉(zhuǎn)換或拆箱轉(zhuǎn)換,成功地轉(zhuǎn)換于T 類(lèi)型。,3.4.4關(guān)系操作符和關(guān)系表達(dá)式,as 操作符 as 操作符用于通過(guò)引用轉(zhuǎn)換或裝箱轉(zhuǎn)換,將一個(gè)值顯式地轉(zhuǎn)換成指定的引用類(lèi)型。它與像顯式類(lèi)型轉(zhuǎn)換,不會(huì)產(chǎn)生任何異常。如果轉(zhuǎn)換不能進(jìn)行,那么結(jié)果值為null。 關(guān)系表達(dá)式 用關(guān)系操作符將兩個(gè)表達(dá)式連接起來(lái)的式子就是關(guān)系表達(dá)式。關(guān)系表達(dá)式的
53、值就是關(guān)系操作符的返回值,即一個(gè)布爾值關(guān)系表達(dá)式可以再作為關(guān)系操作符的操作數(shù),也可以作為布爾值賦給賦值表達(dá)式,,3.4.5 邏輯操作符和邏輯表達(dá)式,C#語(yǔ)言提供了四種邏輯操作符: 邏輯與( 上面四個(gè)表達(dá)式的輸出分別是: Int32 、 Iint32 、string 、double checked和unchecked 操作符 checked 和unchecked 操作符用于整型算術(shù)運(yùn)算時(shí)控制當(dāng)前環(huán)境中的溢出檢查,本章小節(jié),本章我們介紹C#的基本語(yǔ)法,包括詞法結(jié)構(gòu)、數(shù)據(jù)類(lèi)型,常量和變量以及運(yùn)算符和表達(dá)式。 C#數(shù)據(jù)類(lèi)型主要包括:值類(lèi)型和引用類(lèi)型。 C#語(yǔ)言為我們提供了豐富的操作符和表達(dá)式,用于各種
54、情況下對(duì)數(shù)據(jù)的運(yùn)算和處理。,第4章 C#語(yǔ)句,本章內(nèi)容,C#程序的執(zhí)行是由一系列按照文本順序執(zhí)行的語(yǔ)句進(jìn)行的,C#的常用語(yǔ)句包括: 基本語(yǔ)句 條件語(yǔ)句 循環(huán)語(yǔ)句 跳轉(zhuǎn)語(yǔ)句 異常處理語(yǔ)句。,4.1 C#的基本語(yǔ)句,塊語(yǔ)句 塊語(yǔ)句把一系列語(yǔ)句包裝成一個(gè)語(yǔ)句,塊語(yǔ)句的一般格式如下: 一個(gè)或者多個(gè)語(yǔ)句; 空語(yǔ)句 空語(yǔ)句是一種最簡(jiǎn)單的語(yǔ)句,它不實(shí)現(xiàn)任何功能,C#中空語(yǔ)句的形式如下: ;,4.1 C#的基本語(yǔ)句,標(biāo)簽語(yǔ)句 C#程序允許在一條語(yǔ)句前面使用標(biāo)簽前綴,這種語(yǔ)句類(lèi)似于匯編語(yǔ)句,其形式如下: 標(biāo)簽名稱(chēng):語(yǔ)句 用標(biāo)簽語(yǔ)句主要為配合goto語(yǔ)句完成程序的跳轉(zhuǎn)功能,例如: if(x=0) goto lar
55、ge; x = -x; large:return x;,4.1 C#的基本語(yǔ)句,聲明語(yǔ)句 聲明語(yǔ)句主要完成對(duì)一個(gè)常量或者變量的聲明,聲明一個(gè)變量的語(yǔ)法結(jié)構(gòu)如下: 類(lèi)型 變量 = 表達(dá)式 ; 表達(dá)式語(yǔ)句 表達(dá)式語(yǔ)句由表達(dá)式加上分號(hào)“;”組成。其一般形式為: 表達(dá)式;,4.2 選擇語(yǔ)句,當(dāng)程序中需要進(jìn)行兩個(gè)或兩個(gè)以上的選擇時(shí),可以根據(jù)條件判斷來(lái)選擇將要執(zhí)行的一組語(yǔ)句。C#提供的選擇語(yǔ)句有: if 語(yǔ)句 if ( 布爾表達(dá)式 ) 語(yǔ)句塊; switch 語(yǔ)句 switch(控制表達(dá)式) case 常量表達(dá)式: 語(yǔ)句塊; default: 語(yǔ)句塊; ,4.3 循環(huán)語(yǔ)句,C#提供了四種不同的循環(huán)機(jī)制:
56、for循環(huán)語(yǔ)句 foreach循環(huán)語(yǔ)句 while循環(huán)語(yǔ)句 do-while循環(huán)語(yǔ)句,4.3.1 for循環(huán)語(yǔ)句,其語(yǔ)法如下: for( 初始化語(yǔ)句; 條件判斷語(yǔ)句; 迭代語(yǔ)句) 語(yǔ)句塊; for(int i = 0 ; i 100 ; i+ ) Console.WriteLine(i); ,4.3.2 foreach循環(huán)語(yǔ)句,語(yǔ)句的格式為: foreach(類(lèi)型 標(biāo)識(shí)符 in 表達(dá)式) 語(yǔ)句塊; int A = 1, 2, 3 ; foreach( int temp in A ) Console.WriteLine(temp); ,4.3.3 while循環(huán)語(yǔ)句,與for循環(huán)一樣,while
57、也是一個(gè)預(yù)測(cè)試的循環(huán)。如果其測(cè)試條件的值等于false,while循環(huán)就不會(huì)執(zhí)行,其語(yǔ)法是類(lèi)似的,但是while循環(huán)只有一個(gè)表達(dá)式: while(循環(huán)測(cè)試條件) 語(yǔ)句塊;,4.3.4 do-while語(yǔ)句,do-while語(yǔ)句與while 語(yǔ)句不同的是它將內(nèi)嵌語(yǔ)句執(zhí)行一次至少一次或若干次: do 語(yǔ)句塊; while(循環(huán)測(cè)試條件),4.4 跳轉(zhuǎn)語(yǔ)句,C#提供了許多可以立即跳轉(zhuǎn)到程序中另一行代碼的語(yǔ)句,這些跳轉(zhuǎn)語(yǔ)句包括: goto語(yǔ)句 break語(yǔ)句 continue語(yǔ)句 return語(yǔ)句。,4.4.1 goto語(yǔ)句,goto語(yǔ)句可以直接跳轉(zhuǎn)到程序中標(biāo)簽語(yǔ)句中,例如: goto lable1:
58、 Console.WriteLine(“This wont be executed”); lable1: Console.WriteLine(“Continuing execution form here”);,4.4.2 break語(yǔ)句,break語(yǔ)句可以用于for、foreach、while和dowhile循環(huán),它提前結(jié)束循環(huán)操作,立即執(zhí)行后面的語(yǔ)句 如果break語(yǔ)句放在嵌套循環(huán)中,它只能跳出一層循環(huán)操作,而不是跳出整個(gè)嵌套循環(huán)操作,例如: for( int i = 0; i 10; +i) for( int j = 0 ; j 10 ; +j) if( j = 5 ) break; ,
59、4.4.3 continue語(yǔ)句,ontinue語(yǔ)句類(lèi)似于break語(yǔ)句,它也適用于for、foreach、while或dowhile循環(huán)語(yǔ)句中,但是與break語(yǔ)句不同,它只從循環(huán)的當(dāng)?shù)乔暗型顺?,然后在循環(huán)的下一次迭代開(kāi)始重新執(zhí)行,而不是退出循環(huán),例如: for( int i = 0; i 10; +i) if( j = 5 ) continue; Console.WriteLine(“cant execute here”); ,4.4.4 return語(yǔ)句,return語(yǔ)句用于退出類(lèi)的方法,把控制返回該方法的調(diào)用者,如果方法有返回類(lèi)型,return語(yǔ)句必須返回這個(gè)類(lèi)型的值 。,4.5 異常處理語(yǔ)句,異常可以以兩種不同的方式引發(fā): throw 語(yǔ)句無(wú)條件即時(shí)的拋出異常; C#語(yǔ)句和表達(dá)式執(zhí)行過(guò)程中激發(fā)了某個(gè)異常的條件,使得操作無(wú)法正常結(jié)束,從而引發(fā)異常。例如整數(shù)除法,操作分母為零時(shí)將拋出一個(gè)System.DivideByZeroException異常。,4.5 異常處理語(yǔ)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年兒童天賦識(shí)別與教育市場(chǎng)的需求能力評(píng)估考試卷及答案
- 2025年腸道微生物與健康考試試題及答案
- 汽修廠維修完工交車(chē)簽字確認(rèn)制度
- 詢價(jià)單表格模板
- 國(guó)慶節(jié)國(guó)潮風(fēng)活動(dòng)計(jì)劃進(jìn)度保證措施
- 婚宴答謝宴感人致辭(21篇)
- 商品房營(yíng)銷(xiāo)代理合同3篇
- 堅(jiān)強(qiáng)勇敢的演講稿
- 河南平頂山圖書(shū)館招聘試題帶答案分析2024年
- 《慶團(tuán)圓》教案-2025-2026學(xué)年贛美版(2024)小學(xué)美術(shù)一年級(jí)上冊(cè)
- 2024年高等教育文學(xué)類(lèi)自考-00730中外音樂(lè)史考試近5年真題附答案
- 2023年人教版四4年級(jí)下冊(cè)數(shù)學(xué)期末解答質(zhì)量檢測(cè)試卷(含答案)
- 肺結(jié)節(jié)診治中國(guó)專(zhuān)家共識(shí)(2024年版)解讀
- 老年人慢性病管理的最佳實(shí)踐
- 如何提高深靜脈血栓預(yù)防措施規(guī)范落實(shí)率
- DL∕T 5003-2017 電力系統(tǒng)調(diào)度自動(dòng)化設(shè)計(jì)規(guī)程
- 蘇科版八年級(jí)數(shù)學(xué)上冊(cè)講練專(zhuān)題訓(xùn)練一次函數(shù)30道經(jīng)典壓軸題型專(zhuān)項(xiàng)訓(xùn)練(原卷版+解析)
- 廣東省佛山市南海區(qū)三水區(qū)2023-2024學(xué)年七年級(jí)下學(xué)期期末考試語(yǔ)文試題
- 武漢市法院系統(tǒng)招聘審判輔助人員筆試真題2022
- 電氣二次設(shè)備安裝施工方案
- DZ∕T 0270-2014 地下水監(jiān)測(cè)井建設(shè)規(guī)范
評(píng)論
0/150
提交評(píng)論