C與VisualStudio開發(fā)環(huán)境_第1頁
C與VisualStudio開發(fā)環(huán)境_第2頁
C與VisualStudio開發(fā)環(huán)境_第3頁
C與VisualStudio開發(fā)環(huán)境_第4頁
C與VisualStudio開發(fā)環(huán)境_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第二章 C#與Visual Studio開發(fā)環(huán)境本章將從C#語言和.NET技術(shù)的概貌入手,依次介紹Visual Studio集成開發(fā)環(huán)境和C#程序的組成結(jié)構(gòu)。2.1 C#語言與.NET技術(shù)簡介C語言曾經(jīng)是最為流行的一種結(jié)構(gòu)化程序設(shè)計(jì)語言,C+則在C的基礎(chǔ)上增加了對面向?qū)ο蟮闹С?。但?yán)格說來,C+并不是完全面向?qū)ο蟮某绦蛟O(shè)計(jì)語言;為了和C語言 相兼容,C+保留了許多低級特性,因此具有較大的靈活性和較強(qiáng)的底層控制能力。不過,這種靈活性和控制能力也是一把“雙刃劍”,它導(dǎo)致了C+學(xué)習(xí)困難、程序過于復(fù)雜、安全性難以保證等問題。正如低級語言被高級語言逐步取代一樣,程序設(shè)計(jì)語言的發(fā)展就是不斷增強(qiáng)抽象描述能力

2、、屏蔽底層實(shí)現(xiàn)細(xì)節(jié)、提高軟件生產(chǎn)效率的過程。隨著面向?qū)ο蟮膬?yōu)越性被廣泛接受,人們需要更加符合現(xiàn)代軟件開發(fā)要求的面向?qū)ο蟪绦蛟O(shè)計(jì)語言,C#因此應(yīng)運(yùn)而生。它汲取了C+、Java、Delphi等多種語言的精華,具有語法簡潔、類型安全和完全面向?qū)ο蟮忍攸c(diǎn),自2000年一經(jīng)推出便取得了巨大的成功。C#語言簡單易學(xué),它將內(nèi)存管理、設(shè)備驅(qū)動、控制優(yōu)化等底層操作交給.NET Framework實(shí)現(xiàn),這樣開發(fā)人員就能夠把注意力集中在問題模型和程序邏輯上,而不必去關(guān)心過多的底層細(xì)節(jié)。概括地說,.NET是一個(gè)建立在開放網(wǎng)絡(luò)協(xié)議和標(biāo)準(zhǔn)之上的計(jì)算平臺,.NET Framework則是平臺上的基礎(chǔ)編程框架,它由以下兩個(gè)部

3、分組成。l 公共語言運(yùn)行時(shí)(Common Language Runtime,CLR)。它提供了.NET應(yīng)用程序運(yùn)行時(shí)環(huán)境,負(fù)責(zé)管理代碼的執(zhí)行、提供元數(shù)據(jù)類型支持和各種系統(tǒng)服務(wù)。l .NET類庫。它定義了功能豐富的類型集合,能夠?yàn)閼?yīng)用程序提供基本類型、通用數(shù)據(jù)結(jié)構(gòu)、Windows和Web界面設(shè)計(jì)、數(shù)據(jù)庫訪問、XML Web Service、異常處理等各種組件服務(wù)。.NET Framework支持C#、Visual Basic、Java、Visual C+.NET等多種語言,這些高級語言代碼會被編譯為通用中間語言(Intermediate Language,IL)代碼,該語言類似于低級語言,但其代

4、碼與具體的硬件平臺無關(guān);之后CLR再針對特定的平臺將IL程序翻譯為機(jī)器指令,加載所需要的資源并管理程序的執(zhí)行。這也使得.NET平臺上不同語言能夠方便進(jìn)行通信,解決了困擾人們已久的多語言集成的難題。隨著C#語言的流行和用戶的增加,C#也得到了不斷的改進(jìn)和完善。2005年C#升級到了2.0版本,其最大的特點(diǎn)是增加了對泛型程序設(shè)計(jì)(Generic Programming)的支持。2008年C#正式升級為3.0版本,其中增加了Lambda表達(dá)式、隱式類型、擴(kuò)展方法等特性,從而支持一種全新的面向?qū)ο蟮臄?shù)據(jù)訪問模型,即LINQ(Language Integrated Query)模型。.NET Frame

5、work也隨之進(jìn)行了相應(yīng)的版本升級,為.NET應(yīng)用開發(fā)提供了更有效的支持。2.2 Visual Studio開發(fā)環(huán)境 集成開發(fā)環(huán)境概述Visual Studio集成開發(fā)環(huán)境將代碼編輯器、編譯器、調(diào)試器、圖形界面設(shè)計(jì)器等工具和服務(wù)集成在一個(gè)環(huán)境中,能夠有效提高軟件開發(fā)的效率。Visual Studio.NET是最流行的.NET應(yīng)用程序集成開發(fā)環(huán)境,開發(fā)的每一個(gè)程序集對應(yīng)一個(gè)項(xiàng)目(Project),而多個(gè)相關(guān)的項(xiàng)目又可以組成一個(gè)解決方案(Solution)。啟動Visual Studio.NET開發(fā)環(huán)境,可以看到如圖2-1所示的主界面,主要包括以下幾個(gè)部分。l 菜單欄:位于標(biāo)題欄的下方,其中包含了

6、用于開發(fā)、維護(hù)、編譯、運(yùn)行和調(diào)試程序以及配置開發(fā)環(huán)境的各項(xiàng)命令。l 工具欄:位于菜單欄的下方,提供了常用命令的快捷方式。l 代碼編輯區(qū):位于開發(fā)環(huán)境中央,是編輯代碼和設(shè)計(jì)程序的主要區(qū)域。l 輸出窗口:位于代碼編輯區(qū)的下方,用于輸出當(dāng)前操作的結(jié)果。l 解決方案資源管理器:位于開發(fā)環(huán)境的右側(cè),它通過樹形視圖對當(dāng)前解決方案進(jìn)行管理,解決方案是樹的根節(jié)點(diǎn),解決方案中的每一個(gè)項(xiàng)目都是根節(jié)點(diǎn)的子節(jié)點(diǎn),項(xiàng)目節(jié)點(diǎn)下則列出了該項(xiàng)目中使用的各種文件、引用和資源。l 服務(wù)器資源管理器:位于開發(fā)環(huán)境的左側(cè),用于快速訪問本地或網(wǎng)絡(luò)上的各項(xiàng)服務(wù)器資源。l 屬性窗口:位于解決方案資源管理器的下方,用于查看或編輯當(dāng)前所選元素

7、的具體信息。l 狀態(tài)欄:位于開發(fā)環(huán)境的底部,用于對光標(biāo)位置、編輯方式等當(dāng)前狀態(tài)給出提示。圖2-1 Visual Studio集成開發(fā)環(huán)境圖2-1給出的是Visual Studio各窗口的默認(rèn)位置,用戶可以根據(jù)需要來移動、調(diào)整、打開或關(guān)閉,或是通過“視圖”菜單來控制它們的顯示;其中大部分窗口還可以通過選項(xiàng)卡的方式切換,如代碼編輯區(qū)可一次打開多個(gè)源文件,這就能最大程度地利用有限的屏幕空間。其他常用的窗口還有管理程序中的類及其關(guān)系的類視圖、作為控件集合的工具箱等。Visual Studio解決方案將被保存為.sln文件,而單個(gè)C#程序項(xiàng)目則會被保存為.csproj文件。接下來介紹使用Visual S

8、tudio創(chuàng)建4中基本的C#應(yīng)用程序的步驟。 創(chuàng)建控制臺應(yīng)用程序如果要在Visual Studio開發(fā)環(huán)境中創(chuàng)建程序P2_1,可以通過菜單命令“文件”|“新建”|“項(xiàng)目”打開如圖2-2所示的對話框,在左側(cè)的“項(xiàng)目類型”視圖中選擇“Visual C#”,在右側(cè)的“模板”視圖中選擇“控制臺應(yīng)用程序”模板,輸入項(xiàng)目名稱(P2_1),必要時(shí)可以指定項(xiàng)目存放的位置及所屬的解決方案,之后單擊“確定”按鈕,此時(shí)Visual Studio就會自動完成下面的工作。(1)將.NET類庫中的基本程序集添加到項(xiàng)目引用中。(2)生成C#源文件program.cs,其中包含對常用命名空間的引用,以及程序命名空間、主程序類

9、和Main方法的基本框架。(3)生成項(xiàng)目配置文件,在其中保存項(xiàng)目的基本信息。圖2-2 “新建項(xiàng)目”對話框之后開發(fā)人員就可以編輯源文件中的程序代碼,必要時(shí)可以增加源文件、程序集引用和其他資源,并通過菜單命令編譯和運(yùn)行程序。此外,使用快捷鍵F6可以直接編譯程序,使用快捷鍵F5可以直接運(yùn)行程序,使用快捷鍵Ctrl+F5可以不調(diào)試而直接運(yùn)行程序。 創(chuàng)建和使用動態(tài)鏈接庫程序如果要?jiǎng)?chuàng)建動態(tài)鏈接庫程序,可以在圖2-2所示的“新建項(xiàng)目”對話框中選擇“類庫”模板,之后同樣可以編寫代碼來定義各種類型及其成員。不過此類項(xiàng)目只能編譯成動態(tài)鏈接庫文件,而不能直接運(yùn)行。 創(chuàng)建Windows應(yīng)用程序如果要?jiǎng)?chuàng)建Windows

10、應(yīng)用程序,可在圖2-2所示的“新建項(xiàng)目”對話框中選擇“Windows應(yīng)用程序”模板。這時(shí)Visual Studio會為項(xiàng)目生成兩個(gè)C#源程序文件,一個(gè)是Form1.cs;在解決方案資源管理器中雙擊該文件即可以打開窗體設(shè)計(jì)視圖,如圖2-3所示,此時(shí)在Visual Studio工具箱中可以看到一系列可用的Windows窗體控件,其中“公用控件”選項(xiàng)卡下面包含了按鈕、文本框、單選框等常用的Windows控件,通過鼠標(biāo)拖放操作就可以把這些控件添加到窗體上。圖2-3 工具箱與窗體設(shè)計(jì)視圖另一個(gè)是文件是program.cs,其中定義了包含Main方法的主程序類program,其代碼如下。using Sys

11、tem;using System.Collections.Generic;using System.Windows.Forms;namespace P2_3 static class Program static void Main() Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1(); 代碼中的Application類表示當(dāng)前的Windows應(yīng)用程序,其Run方法用于在程序啟動時(shí)打開主窗體Form1,它和Form

12、類都在System.Windows.Forms命名空間下定義。 創(chuàng)建ASP.NET網(wǎng)站程序在Visual Studio中還可以方便地創(chuàng)建ASP.NET應(yīng)用程序。通過菜單命令“文件”|“新建”|“網(wǎng)站”打開如圖2-4所示的對話框,在“模板”列表中選擇“ASP.NET網(wǎng)站”選項(xiàng),在“語言”下拉列表框中選擇“Visual C#”選項(xiàng),必要時(shí)指定項(xiàng)目的存放位置,然后單擊“確定”按鈕,Visual Studio就會創(chuàng)建一個(gè)基本的網(wǎng)站框架,包括一個(gè)網(wǎng)站配置文件web.config和一個(gè)默認(rèn)網(wǎng)頁Default.aspx。選中當(dāng)前項(xiàng)目,通過菜單命令“網(wǎng)站”|“添加新項(xiàng)”,在打開的對話框中選擇“Web窗體”,就

13、可以向項(xiàng)目中加入新的網(wǎng)頁。圖2-4 “新建網(wǎng)站”對話框ASP.NET網(wǎng)站項(xiàng)目的每一個(gè)網(wǎng)頁都包含兩個(gè)文件:一個(gè)設(shè)計(jì)文件(后綴為.aspx)和一個(gè)C#源代碼文件(后綴為.aspx.cs)。打開一個(gè)網(wǎng)頁設(shè)計(jì)文件,此時(shí)在Visual Studio工具箱中可以看到一系列可用的Web窗體控件,如按鈕、文本框、單選框等,通過鼠標(biāo)的拖放操作可以把這些控件添加到網(wǎng)頁中。2.3 C#程序的基本結(jié)構(gòu)下面先看一個(gè)非常簡單的C#程序,它用于在屏幕上輸出一行文字“歡迎光臨!”。/程序P2_1using System;namespace P2_1public class programpublic static void

14、Main()Console.WriteLine(“歡迎光臨!”);可在任何一種文本編輯器(如記事本或Microsoft Word)中輸入上述代碼,將其保存為文件“P2_1.cs”(后綴.cs表示C#源程序文件),而后打開命令行窗口,使用C#編譯器csc.exe編譯程序(必要時(shí)指定源文件所在的目錄)就能生成可執(zhí)行文件P2_1.exe。程序的編譯和運(yùn)行結(jié)果如圖2-1所示。圖2-5 編譯和執(zhí)行C#程序P2_1接下來分析一下該程序的基本結(jié)構(gòu)。2.3.1 注釋程序P2_1的第一行以兩個(gè)反斜杠“/”開頭,表示程序的注釋,在它同行右邊的內(nèi)容會被編譯器忽略,不對程序的運(yùn)行產(chǎn)生任何影響。如果要寫多行注釋,可以每

15、一行都以“/”開頭,或是將所有的注釋內(nèi)容都放在一對標(biāo)記“/*”和“*/”之間,例如:/*程序P2_1該程序的功能是在屏幕上輸出一行文字“歡迎光臨!”*/但多行注釋標(biāo)簽不可以嵌套。例如,對于下面的代碼,編譯器會將第一行開頭的“/*”到第二行末尾的“*/”之間的內(nèi)容視為注釋,將第三行的“*/”視為非法代碼。/*程序P2_1/*該程序的功能是在屏幕上輸出一行文字“歡迎光臨!”*/*/注釋可以出現(xiàn)在程序代碼的任何位置,主要用于對代碼的功能和用途進(jìn)行說明,從而提高程序的可讀性,便于理解和修改程序。程序員都應(yīng)當(dāng)養(yǎng)成注釋代碼的良好習(xí)慣。 命名空間程序中常常需要定義很多的類型,為了便于類型的組織和管理,C#引

16、入了命名空間的概念。一組類型可以屬于一個(gè)命名空間,而一個(gè)命名空間也可以嵌套在另一個(gè)命名空間種,從而形成一個(gè)邏輯層次結(jié)構(gòu),這就好比目錄式的文件系統(tǒng)組織方式。程序P2_1的第二行通過關(guān)鍵字“using”引用了一個(gè).NET類庫中的命名空間“System”,之后程序就可以自由使用該命名空間下定義的各種類型了。程序的第三行則通過關(guān)鍵字“namespace”定義了一個(gè)新的命名空間“P2_1”,在其后的一對大括號“”中定義的所有類型都屬于該命名空間。命名空間的使用還有利于避免命名沖突。不同開發(fā)人員可能會使用同一個(gè)名稱來定義不同的類型,在程序相互調(diào)用時(shí)可能會產(chǎn)生混淆,而將這些類型放在不同的命名空間中就可以解決

17、此問題。 類型及其成員在C#引用中,類是最為基本的一種數(shù)據(jù)類型,類的屬性也叫“字段”(field),類的操作,即“方法”(method)。類使用關(guān)鍵字“class”來定義,程序P2_1就定義了一個(gè)名為“program”的類,并為其定義了一個(gè)方法“Main”,在其中執(zhí)行文本輸出的功能:public static void Main()Console.WriteLine(“歡迎光臨!”);這里Main方法的功能是通過調(diào)用Console類的WriteLine方法來完成的。WriteLine方法的輸入?yún)?shù)是用一對雙引號括起來的字符串,表示要輸出顯示的文本。如果要顯示定義的字符串對象,Main方法中的代

18、碼可以改寫如下:string s=“歡迎光臨!”Console.WriteLine(s);Console類是.NET類庫的System命名空間下定義的一個(gè)類,表示對控制臺窗口的抽象。由于程序一經(jīng)引用了該命名空間,因此Main方法的代碼中可以直接使用該類。如果輸出程序的第二行,在使用Console類時(shí)還需要指定該類所屬的命名空間,如下:(“歡迎光臨!”);Console類是控制臺應(yīng)用程序與用戶交互的基礎(chǔ),表2-1列出了一些常用的輸入輸出方法。表2-1 Console類常用成員方法方法輸入?yún)?shù)返回值作用Read無整數(shù)讀入下一個(gè)字符ReadKey無ConsoleKeyInfo對象讀入下一個(gè)字符Rea

19、dLIne無字符串讀入一行文本,至換行符結(jié)束Write任意對象無輸出一行文本W(wǎng)riteLine任意對象無輸出一行文本,并換行同理,在其他程序中使用程序P2_1中的program類也可以采用這兩種方式:一是直接使用全稱“P2_1.program”;二是先在其他程序中引用命名空間P2_1,然后使用簡稱program。不過,如果存在命名空間沖突,那么就必須使用全稱來加以區(qū)分。程序P2_1雖然簡單,但我們從中看到了C#應(yīng)用程序的基本結(jié)構(gòu):命名空間下包含類,類可以包含成員數(shù)據(jù)(字段)和成員函數(shù)(方法),方法中又包含執(zhí)行代碼。這種包含關(guān)系都是通過一對大括號來表示的。 程序的主方法程序的功能是通過執(zhí)行方法代

20、碼來實(shí)現(xiàn)的,每個(gè)方法都是從其第一行代碼開始執(zhí)行,直到執(zhí)行完最后一行代碼結(jié)束,期間可以通過代碼來調(diào)用其他的方法,從而完成各種各樣的操作。應(yīng)用程序的執(zhí)行必須要有一個(gè)起點(diǎn)和一個(gè)終點(diǎn)。C#程序的起點(diǎn)和終點(diǎn)都是由Main方法定義的,程序總是從Main方法的第一行代碼開始執(zhí)行,在Main方法結(jié)束時(shí)停止程序的運(yùn)行。因此,對于C#可執(zhí)行程序,其中必須有一個(gè)類定義了Main方法,編譯器會確定該方法作為程序的入口。如果多個(gè)類中都定義了Main方法,那么還要明確指定其中一個(gè)作為主方法。例如,下面的編譯命令使用main選項(xiàng)將program類中的Main方法作為程序的主方法。csc /main:program P2_1.cs 程序集人們使用代碼編寫的是源程序文件,它必須通過編譯后才能

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論