- 從零開始學C#
- 劉亮亮等編著
- 958字
- 2018-12-27 12:54:34
第2章C#基礎(chǔ)
C#是微軟公司發(fā)布的一種面向?qū)ο蟮摹⑦\行于.NET Framework之上的高級程序設計語言。本章介紹C#基礎(chǔ),首先介紹C#語言,然后講解Visual C# 4.0中創(chuàng)建項目和解決方案,之后以“Hello World”實例向讀者展示W(wǎng)indows應用程序的創(chuàng)建和運行及類庫的創(chuàng)建,最后概述Visual C# 4.0中的一些新特性。
2.1 C#語言
C#(C sharp)是由C和C++發(fā)展而來的面向?qū)ο蟮木幊陶Z言,它是一種現(xiàn)代的、安全的、穩(wěn)定的、簡單的語言。它在繼承C和C++強大功能的同時簡化和現(xiàn)代化了C++在類、命名空間、方法重載和異常處理等領(lǐng)域的處理方法。摒棄了C++的復雜性,使它更易用、更少出錯,減少了C++的一些特性,不再有宏、模板和多重繼承。這些功能的改善使得C#語言更易于學習和使用。另外,C#還綜合了VB簡單的可視化操作和C++的高運行效率,以其強大的操作能力、優(yōu)雅的語法風格、創(chuàng)新的語言特性和便捷的面向組件編程的支持成為.NET開發(fā)的首選語言。并且C#成為ECMA與ISO標準規(guī)范。C#看似基于C++寫成,但又融入其他語言(如Delphi、Java、VB等)的特性。
在C#之前,C和C++已經(jīng)成為在軟件的開發(fā)領(lǐng)域中使用最廣泛的語言。它們?yōu)殚_發(fā)人員提供了十分靈活的操作,但同時也因此犧牲了一定的效率及相應的易用性,比如開發(fā)同一應用程序,C和C++與Visual Basic等語言相比需要更長時間來開發(fā),且Visual Basic操作更為簡單。所以開發(fā)人員需要一種簡單易用、高效靈活的開發(fā)語言,它要和最新的網(wǎng)絡標準保持同步并且能和已有的應用程序良好整合的環(huán)境,且在快速開發(fā)的同時又可以調(diào)用底層平臺的所有功能。
C#是微軟對這一問題的解決方案。C#是一種最新的、面向?qū)ο蟮木幊陶Z言。它使得程序員可以快速地編寫各種基于Microsoft .NET平臺的應用程序,Microsoft .NET提供了一系列的工具和服務來最大程度地開發(fā)利用計算與通信領(lǐng)域。
C#提出了純粹的面向?qū)ο蟾拍睿⒃谡Z言特性中展現(xiàn)得淋漓盡致。C++并非純面向?qū)ο蟮模瑸榱撕虲兼容及提供更高的執(zhí)行效率,它保留了很多模塊化的東西。Java盡管號稱是面向?qū)ο蟮模珜嶋H上,對于對象所應該具備的三種構(gòu)成結(jié)構(gòu)——屬性、方法和事件,Java僅提供了方法,其他兩種結(jié)構(gòu)都要通過方法來模擬。在C#中,所有面向?qū)ο蟮母拍疃荚谡Z言中得到了非常好的體現(xiàn)。同時,C#還通過類類型、值類型和接口類型的概念形成了統(tǒng)一的類型系統(tǒng)。C#使用了大家所熟知的語法實現(xiàn)了方法,以至于很多人認為C#和Java、C++等面向?qū)ο笳Z言“非常相像”,這使得從使用其他面向?qū)ο笳Z言轉(zhuǎn)到使用C#的過程非常簡單。
最重要的是,C#不但保持了C/C++原有的強大功能和良好的底層編程能力,還提高了程序開發(fā)效率,使得C++程序員可以高效地開發(fā)程序。C#與C/C++具有極大的相似性,熟悉類似語言的開發(fā)者可以很快地轉(zhuǎn)向C#。C#主要有以下特點。
1.C#的效率與安全性
C#的使用不但使開發(fā)人員可以快速高效地開發(fā)程序,同時C#還提供了強大的安全性,比如,類型安全、資源自動回收,這可以幫助開發(fā)人員消除大量程序錯誤。
在程序開發(fā)過程中,程序員開發(fā)人員常會犯一些最簡單的小錯誤,比如忘了初始化變量,而在C++中,往往就是這些小錯誤帶來了難以預料的問題,有些甚至需要很長時間來尋找和解決。一旦一個程序作為產(chǎn)品來使用,最簡單的錯誤糾正起來也可能要付出極其昂貴的代價。C#的現(xiàn)代化設計能夠消除很多常見的C++編程錯誤。例如,資源回收減輕了程序員內(nèi)存管理的負擔;不能使用沒有初始化的變量,當使用一個沒有初始化的變量時,編譯器會給出相關(guān)提示。這樣能夠避免由于使用不經(jīng)初始化的變量計算結(jié)果而導致的錯誤,而程序開發(fā)人員還不知道這些奇怪的結(jié)果是如何產(chǎn)生的;C#取消了不安全的類型轉(zhuǎn)換。
由于C#提高了程序開發(fā)的安全性,使得程序員編寫與維護那些解決復雜商業(yè)問題的程序就更方便了。它使開發(fā)者能用更少的代碼做更多的事,同時也不易出錯。
2.C#支持現(xiàn)有的網(wǎng)絡編程新標準
新的應用程序開發(fā)模型意味著越來越多的解決方案依賴于新出現(xiàn)的網(wǎng)絡標準,例如HTML、XML、SOA等。現(xiàn)存的開發(fā)工具往往都是早于Internet出現(xiàn)的,或者是在廣大程序員所熟知的網(wǎng)絡還處于孕育時期出現(xiàn)的,所以,它們一般無法很好地支持最新的網(wǎng)絡技術(shù)。
XML網(wǎng)絡服務框架可以使現(xiàn)有的XML網(wǎng)絡服務對程序員來說就和C#對象一樣。這樣,程序員就可以方便地使用他們已有的面向?qū)ο蟮木幊碳记蓙黹_發(fā)利用現(xiàn)有的XML網(wǎng)絡服務。XML正逐漸成為在網(wǎng)絡上傳輸結(jié)構(gòu)化數(shù)據(jù)的標準。這種數(shù)據(jù)集合往往非常小,為提高性能,C#允許把XML數(shù)據(jù)直接映射到struct數(shù)據(jù)類型,而不是class,這樣對處理少量的數(shù)據(jù)非常有效。
C#程序員可以在Microsoft.NET平臺上事半功倍地構(gòu)建應用程序的擴展框架。C#包含了內(nèi)置的特性,使任何組件可以輕松轉(zhuǎn)化為XML網(wǎng)絡服務,通過Internet被任何操作系統(tǒng)上運行的任何程序調(diào)用。
C#語言允許類型定義的、擴展的元數(shù)據(jù)。這些元數(shù)據(jù)可以應用于任何對象。項目構(gòu)建者可以定義領(lǐng)域特有的屬性并把它們應用于任何語言元素——類、接口等。然后,開發(fā)人員可以編程檢查每個元素的屬性。這樣,很多工作都變得方便多了,比如編寫一個小工具來自動檢查每個類或接口是否被正確定義為某個抽象商業(yè)對象的一部分,或者只是創(chuàng)建一份基于對象的領(lǐng)域特有屬性的報表。定制的元數(shù)據(jù)和程序代碼之間的緊密對應有助于加強程序的預期行為和實際實現(xiàn)之間的對應關(guān)系。
3.C#的擴展交互性
作為一種自動管理的、類型安全的環(huán)境,C#適合于大多數(shù)企業(yè)應用程序。但實際的經(jīng)驗表明。有些應用程序仍然需要一些底層的代碼,要么是因為基于性能的考慮,要么是因為要與現(xiàn)有的應用程序接口兼容。這些情況可能會迫使開發(fā)者使用C++,即使他們本身寧愿使用更高效的開發(fā)環(huán)境。
C#采用以下對策來解決這一問題,內(nèi)置對組建對象模型(COM)和基于Windows的API的支持;允許有限制地使用純指針(Native Pointer)。在C#中,每個對象都自動生成為一個COM對象,開發(fā)者不再需要顯式地實現(xiàn)IUnknown和其他COM接口,這些功能都是內(nèi)置的。類似地,C#可以調(diào)用現(xiàn)有的COM對象,無論它是由什么語言編寫的。C#包含了一個特殊的功能,使程序可以調(diào)用任何純API。在一段特別標記的代碼中,開發(fā)者可以使用指針和傳統(tǒng)C/C++特性,如手工的內(nèi)存管理和指針運算,這是其相對于其他環(huán)境的極大優(yōu)勢。這意味著C#程序員可以在原有的C/C++代碼的基礎(chǔ)上編寫程序,而不是徹底放棄那些代碼。無論是支持COM還是純API的調(diào)用,都是為了使開發(fā)者在C#環(huán)境中直接擁有必要的強大功能。
4.C#對版本更新的支持
更新軟件組件是一項很容易出錯的工作,因為代碼的修改可能無意間改變原有程序的語義。為協(xié)助開發(fā)者進行這項工作,C#為版本的更新提供內(nèi)在的支持。例如,方法重載必須顯式聲明,這樣可以防止編碼錯誤,保證版本更新的靈活性。還有一個相關(guān)的特性就是對接口和接口繼承的內(nèi)在支持。這些特性使得C#可以開發(fā)復雜的框架并且隨著時間不斷發(fā)展更新它。從總體來說,這些特性使得開發(fā)程序項目的后續(xù)版本的過程更加健壯,從而減少后續(xù)版本的開發(fā)成本。
2.2 創(chuàng)建項目和解決方案
在2.1節(jié)中講解了C#的發(fā)展及C#所具有的特點,本節(jié)將用實例講解在C#中創(chuàng)建項目和解決方案。在1.4.2節(jié)中已詳細講解了項目和解決方案,在此只作簡單介紹。
2.2.1 創(chuàng)建新解決方案
項目是一組要編譯到單個程序集(在某些情況下是單個模塊)中的源文件和資源。例如,項目可以是類庫或一個Windows GUI應用程序。解決方案是構(gòu)成某個應用程序的所有項目集。也就是說解決方案包含項目,一個解決方案可以包含一個或多個項目。
1.創(chuàng)建新解決方案
(1)首先啟動Visual Studio 2010,選擇“開始”→“程序”→“Microsoft Visual Studio 2010”→“Microsoft Visual Studio 2010”命令,啟動之后的界面如圖1-7所示。
(2)在Visual Studio 2010菜單欄選擇“文件”→“新建”→“項目”命令,彈出圖1-9所示的“新建項目”界面。
(3)在“新建項目”界面的“已安裝的模板”窗格中選擇“Visual C#”,然后選擇“Windows”。
(4)在“模板”窗格中選擇空白“空項目”。如圖2-1所示,在“名稱”文本框中輸入解決方案名稱“2.1”,在“位置”下拉列表框中顯示了解決方案保存位置,也可以單擊“瀏覽”按鈕更改保存位置。

圖2-1 新建空白解決方案
(5)單擊“確定”按鈕,將創(chuàng)建名稱為“2.1”的解決方案,如圖2-2所示。

圖2-2 解決方案資源管理器
通過圖2-2可知,此方法創(chuàng)建的是一個空白解決方案,方案中沒有任何項目。
2.創(chuàng)建項目
在創(chuàng)建項目的同時,Visual Studio將自動創(chuàng)建一個解決方案,此解決方案包含該新建的項目。在1.4.1節(jié)中講解了用向?qū)?chuàng)建項目,在此將講解創(chuàng)建項目的另一種方法。
(1)首先啟動Visual Studio 2010,選擇“開始”→“程序”→“Microsoft Visual Studio 2010”→“Microsoft Visual Studio 2010”命令。
(2)在Visual Studio 2010菜單欄單擊“文件”→“新建”→“項目”命令,彈出“新建項目”界面。
(3)在“新建項目”界面的“已安裝的模板”窗格中選擇項目的類型,此處選擇“Visual C#”,然后選擇“Windows”,表示創(chuàng)建的是“Windows”應用程序類型。
(4)在“模板”窗格中選擇 “Windows窗體應用程序”,如圖2-3所示。在“名稱”文本框中輸入項目名稱“2.2”,“位置”下拉列表框中顯示了解決方案保存位置,可以單擊“瀏覽”按鈕更改保存位置。

圖2-3 新建Windows應用程序
(5)單擊“確定”按鈕,將創(chuàng)建名稱為“2.2”的項目,如圖2-4所示。

圖2-4 2.2解決方案資源管理器
創(chuàng)建“Windows”應用程序項目時,Visual Studio 2010會自動創(chuàng)建一名稱為“Form1”的Windows窗體和一個名稱為“Program.cs”的類文件,文件主要用于設置項目的啟動窗體,也就是項目運行時的入口。另外還添加了運行Windows程序所需的相關(guān)引用資源。
2.2.2 解決方案中添加項目
解決方案可以包含多個項目,可以通過在現(xiàn)有解決方案中新建項目和添加現(xiàn)有項目方式給解決方案添加項目,步驟如下。
1.添加新建項目
(1)啟動Visual Studio 2010,選擇“開始”→“程序”→“Microsoft Visual Studio 2010”→“Microsoft Visual Studio 2010”命令,啟動Visual Studio。
(2)選擇“文件”→“打開”→“項目/解決方案”命令,彈出如圖2-5所示的“打開項目”對話框。

圖2-5 “打開項目”對話框
(3)選擇“2.2.sln”,單擊“打開”按鈕將打開解決方案和項目。
(4)在解決方案資源管理器中,用鼠標右鍵單擊名為“2.2”解決方案,在彈出快捷菜單中選擇“添加”→“新項目”命令。
(5)在彈出的對話框中的“名稱”文本框中輸入名稱,在“位置”下拉列表框中顯示了解決方案保存位置,可以單擊“瀏覽”按鈕更改保存位置。
(6)單擊“確定”按鈕,成功添加新建項目。
2.添加已有項目
(1)啟動Visual Studio 2010,選擇“開始”→“程序”→“Microsoft Visual Studio 2010” →“Microsoft Visual Studio 2010”命令。
(2)選擇“文件”→“打開”→“項目/解決方案”命令,彈出如圖2-5所示的對話框。
(3)選擇“2.2.sln”,單擊“打開”按鈕將打開解決方案和項目。
(4)在解決方案資源管理器中,用鼠標右鍵單擊名為“2.2”解決方案,在彈出快捷菜單中選擇“添加”→“已存在項目”命令。
(5)在彈出的對話框中,選擇已有項目,如圖2-6所示,單擊“打開”按鈕,成功添加新建項目。

圖2-6 “Add Existing Project”對話框
2.3 “Hello World”實例
通過2.2節(jié)學習的知識,讀者已經(jīng)了解在Visual Studio 2010中創(chuàng)建Visual C#解決方案和項目,本節(jié)將通過“Hello World”實例來分別介紹Windows應用程序、Web應用程序、控制臺應用程序的創(chuàng)建和使用。
2.3.1 創(chuàng)建Windows應用實例
本節(jié)將介紹如何創(chuàng)建Windows應用程序。
1.創(chuàng)建Windows應用程序
創(chuàng)建Windows應用程序,首先需要創(chuàng)建Windows應用項目,操作方法:首先啟動Visual Studio 2010,在菜單欄選擇“文件”→“新建”→“項目”命令,然后在彈出的窗口中選擇項目類型為Windows應用程序,輸入項目名稱“HelloWorld”。創(chuàng)建Windows應用項目詳細操作步驟可以參照2.2節(jié)所介紹的項目創(chuàng)建方法。
2.命名
可以在項目創(chuàng)建時輸入項目的名稱,如圖2-3所示的新建Windows應用程序窗口,在“名稱”文本框中輸入項目名稱“HelloWorld”,也可以在項目創(chuàng)建后進行重命名,操作方法:在如圖2-7所示的“HelloWorld”解決方案的資源管理器中,用鼠標右鍵單擊項目名稱“HelloWorld”,在彈出的快捷菜單中選擇“重命名”命令,如圖2-8所示,輸入新的項目名稱。

圖2-7 HelloWorld解決方案資源管理器

圖2-8 項目管理右鍵菜單
3.編寫代碼
創(chuàng)建應用程序項目時,系統(tǒng)自動創(chuàng)建名稱為“Form1”的Windows窗體,要給Windows窗體書寫代碼可以直接在Windows窗體設計器上單擊鼠標右鍵,在彈出的快捷菜單中選擇“查看代碼”命令,也可以使用快捷鍵“F7”來打開代碼編寫窗口,如圖2-9所示。接下來使用Label控件,在Windows窗體顯示“Hello World”字符串。

圖2-9 代碼窗口
(1)打開Form1的窗體設計器,在左側(cè)工具欄菜單“通用控件”中單擊“Label”控件,然后把光標移到Form1的窗體設計器上單擊,將為當前窗體添加一個“Label”控件,如圖2-10所示。

圖2-10 Form1窗體
(2)按“F7”鍵打開代碼編寫窗口,如圖2-9所示。
(3)在代碼窗口中輸入如下代碼:
01 private void Form1_Load(object sender, EventArgs e) 02 { 03 label1.Text = "HELLO WORLD"; //賦值顯示 04 }
4.保存
代碼書寫完成后,需要對所做操作進行保存。Visual Studio 2010提供了多種保存方法,此處介紹兩種常用方法,可以單擊工具欄中的“保存”按鈕進行保存,也可能使用快捷鍵“Ctrl+S”進行保存。
5.運行
Windows應用程序已經(jīng)完成,可以通過運行來查看效果。按“F5”鍵或選擇菜單欄上的“調(diào)試”→“啟動調(diào)試”命令來運行程序,如圖2-11所示。

圖2-11 Windows應用程序運行窗口
2.3.2 創(chuàng)建Web應用實例
在本節(jié)將講解如何創(chuàng)建一個Web應用程序。
1.創(chuàng)建Web應用程序
創(chuàng)建Web應用程序步驟:
(1)啟動Visual Studio 2010,選擇“開始”→“程序”→“Microsoft Visual Studio 2010”→“Microsoft Visual Studio 2010”命令。
(2)選擇“文件”→“新建”→“項目”,“新建項目”對話框。
(3)在“新建項目”對話框的“已安裝的模板”窗格中選擇項目的類型,此處選擇“Visual C#”,然后選擇“Web”,表示創(chuàng)建的是“Web”應用程序類型。
(4)在“模板”窗格中選擇“ASP.NET Web應用程序”,如圖2-12所示。在“名稱”文本框中輸入項目名稱“Hello World”,“位置”下拉列表框中顯示了解決方案保存位置,可以單擊“瀏覽”按鈕更改保存位置。

圖2-12 新建Web應用程序
(5)單擊“確定”按鈕,將創(chuàng)建名稱為“Hello World”的“Web”應用項目。
2.編寫代碼
創(chuàng)建Web應用程序項目時,系統(tǒng)會自動在解決方案管理器中添加名稱為“Default”的Web頁。Web頁代碼分為前臺代碼和后臺代碼,前臺代碼一般指的是網(wǎng)頁代碼,如HTML、JavaScript等。這里主要介紹后臺代碼編寫。代碼窗口打開方法與Windows應用程序代碼窗口相同,以直接在Web頁設計器上單擊鼠標右鍵,在彈出的快捷菜單中選擇“查看代碼”命令,也可以使用快捷鍵“F7”來打開代碼編寫窗口。接下來也在Web頁上顯示“Hello World”。
(1)雙擊解決方案管理器中的“Default.aspx”,在窗口下方選擇“設計”,然后從左側(cè)工具欄菜單“標準控件”中拖動“Label”控件到Default.aspx頁面上。
(2)按“F7”鍵打開代碼編寫窗口,如圖2-13所示。

圖2-13 Web頁代碼窗口
(3)在代碼窗口中輸入如下代碼。
01 protected void Page_Load(object sender, EventArgs e) 02 { 03 Label1.Text = "Hello World"; 04 }
3.保存
代碼書寫完成后,需要對所做操作進行保存。保存方法同Windows應用程序項目。
4.運行
按“F5”鍵或選擇菜單欄上的“調(diào)試”→“啟動調(diào)試”命令來運行程序。運行Web項目時,Visual Studio 2010自動打開一個端口來對Web項目進行調(diào)試運行。運行結(jié)果如圖2-14所示。

圖2-14 Web應用運行結(jié)果
2.3.3 創(chuàng)建控制臺應用程序
下面來介紹如何使用C# 4.0創(chuàng)建控制臺應用程序。
1.創(chuàng)建控制臺應用程序項目
創(chuàng)建控制臺應用程序項目在第1章有過簡單介紹,此處詳細講解創(chuàng)建控制臺應用程序項目的操作步驟。
(1)啟動Visual Studio 2010,選擇“開始”→“程序”→“Microsoft Visual Studio 2010”→“Microsoft Visual Studio 2010”命令。
(2)選擇“文件”→“新建”→“項目”命令,彈出“新建項目”對話框。
(3)在“新建項目”對話框的“已安裝的模板”窗格中選擇項目的類型,此處選擇“Visual C#”,然后選擇“Windows”。
(4)在“模板”窗格中選擇“控制臺應用程序”。在“名稱”文本框中輸入項目名稱“Hello World”,“位置”下拉列表框中顯示了解決方案保存位置,可以單擊“瀏覽”按鈕更改保存位置。
(5)單擊“確定”按鈕,將創(chuàng)建名稱為“Hello World”的控制臺應用程序項目。
2.讓控制臺應用程序向你打個招呼
控制臺應用項目創(chuàng)建完畢之后,在“解決方案管理器”的文件結(jié)構(gòu)中,可以看到已經(jīng)創(chuàng)建好的一個Program.cs文件。在該文件中,可以編寫控制臺應用程序的主函數(shù)代碼,來向你打個招呼。操作方法如下:
(1)雙擊解決方案管理器中的“Program.cs文件”,打開代碼編寫窗口。
(2)在代碼窗口中輸入如下代碼。
01 using System; 02 using System.Collections.Generic; 03 using System.Text; 04 05 namespace Hello_World 06 { 07 class Program 08 { 09 static void Main(string[] args) 10 { 11 System.Console.WriteLine("hello world!"); //將hello world!字符輸出到控制臺 12 System.Console.ReadLine(); //讀取Enter鍵之后,關(guān)閉控制臺應用程序 13 } 14 } 15 }
3.設置啟動項目
如果解決方案要有多個項目,必須為解決方案設置一個啟動項目,在解決方案資源管理器中,選擇對應的項目名稱,用鼠標右鍵單擊,在彈出的快捷菜單中選擇“設置為啟動項目”命令,如圖2-15所示。設置啟動項目后,該項目名稱將以黑色粗體顯示。

圖2-15 設置啟動項目
4.運行控制臺項目
代碼編寫完成之后,按“F5”鍵或者單擊工具欄中的“啟動調(diào)試”按鈕,運行程序。
2.4 創(chuàng)建類庫
在介紹創(chuàng)建類庫之前,先簡單介紹類的相關(guān)知識。類,顧名思義,就是一些擁有相同屬性的數(shù)據(jù)的集合。例如,現(xiàn)實中的人類、動物類、車類等。所謂類庫就是指一個類的集合。創(chuàng)建類庫使得程序開發(fā)人員可以更加方便、重復地使用類,更易于程序功能擴展和多平臺共享。Visual C#給程序開發(fā)人員提供大量的系統(tǒng)類庫,通過調(diào)用系統(tǒng)類庫開發(fā)人員可以更加快速、高效地開發(fā)應用程序,本節(jié)重點介紹自定義類庫項目的創(chuàng)建和調(diào)用。
2.4.1 創(chuàng)建類庫項目
下面將介紹如何創(chuàng)建類庫項目。
(1)啟動Visual Studio 2010,選擇“開始”→“程序”→“Microsoft Visual Studio 2010”→“Microsoft Visual Studio 2010”命令。
(2)選擇“文件”→“新建”→“項目”命令,彈出圖1-9所示“新建項目”對話框。
(3)在“新建項目”對話框的“已安裝的模板”窗格中選擇項目的類型,此處選擇“Visual C#”,然后選擇“Windows”,表示創(chuàng)建的是“Windows”應用程序類型。
(4)在“模板”窗格中選擇 “類庫”。在“名稱”文本框中輸入類庫項目名稱“My_Library”,“位置”下拉列表框中顯示了解決方案保存位置,可以單擊“瀏覽”按鈕更改保存位置。
(5)單擊“確定”按鈕,將創(chuàng)建名稱為“My_Library”的項目,如圖2-16所示。

圖2-16 類庫解決方案管理器
類庫項目創(chuàng)建完成后,系統(tǒng)自動給Solution Explorer(解決方案管理器)的項目中增加兩個C#類,第一個是AssemblyInfo.cs,第二個是Class1.cs。在此不討論AssemblyInfo,重點介紹Class1.cs。
雙擊Class1.cs,就能看到一個名稱空間My_Library,下面是Class1.cs文件中的代碼:
01 using System; 02 using System.Collections.Generic; 03 using System.Linq; 04 using System.Text; 05 06 namespace My_Library 07 { 08 public class Class1 09 { 10 } 11 }
(6)給類增加一個方法。
創(chuàng)建類庫時雖然Visual Studio添加了Class1.cs類,但還沒有在類中編寫功能代碼,還不具有任何功能,現(xiàn)在來增加一個方法,代碼如下:
01 using System; 02 using System.Collections.Generic; 03 using System.Linq; 04 using System.Text; 05 06 namespace My_Library 07 { 08 public class Class1 //聲明類 09 { public void OutPut(){ 10 Console.WriteLine("類庫輸出成功!"); 11 } 12 public static void main(String[]args) { 13 Class1 myclass = new Class1(); //實例化類 14 myclass.OutPut(); //輸出 15 } 16 } 17 }
(7)生成類庫dll。
單擊“創(chuàng)建”菜單,選擇“創(chuàng)建My_Libray”將編譯類文件,編譯完成后會在項目文件的in\debug目錄生成名稱為My_Libray的dll文件。
2.4.2 定義引用
類庫創(chuàng)建完成后,如果想在項目中調(diào)用類庫,首先需要引用類庫,打開2.3.3節(jié)創(chuàng)建的控制臺應用項目,在解決方案管理器中用鼠標右鍵單擊“引用”,在彈出的快捷菜單中選擇“添加引用”命令,如圖2-17所示。在彈出的對話框中選擇“Browse”選項卡,在選項卡中找到所生成的類庫文件所在的目錄,選擇“My_Library”,單擊“OK”按鈕,如圖2-18所示。

圖2-17 添加引用

圖2-18 “Add Reference”對話框
2.4.3 調(diào)用類庫的功能
如果需要在程序文件中使用類,除了在解決方案中添加引用外,還需要在程序文件中引用名稱空間和初始化類對象,所需操作如下:
(1)引用名稱空間:using My_Library。
(2)創(chuàng)建一個Class1的對象:Class1 myclass = new Class1()。
(3)調(diào)用方法:
01 using System; 02 using System.Collections.Generic; 03 using System.Linq; 04 using System.Text; 05 using My_Library; //引用類的命名空間 06 07 namespace helloworld 08 { 09 class Program 10 { 11 static void Main(string[] args) 12 { 13 Class1 myclass = new Class1(); //實例化類 14 myclass.OutPut(); 15 Console.Read(); 16 } 17 } 18 }
【代碼解析】第13行代碼用來實例化Class1類為myclass。
2.4.4 運行
代碼編寫完成之后,按“F5”鍵或者單擊工具欄中的“啟動調(diào)試”按鈕,運行結(jié)果如圖2-19所示。

圖2-19 調(diào)用類庫輸出結(jié)果
2.5 C# 4.0中的新特性
本節(jié)將介紹C# 4.0中的兩個新特性——代碼片段(Code Snippets)、智能感應(Generate From Usage)。
2.5.1 代碼片段(Code Snippets)
代碼片段(Code Snippets)是一小段針對某一功能的、可多次使用的代碼。它是Visual Studio 2010具有的自動完成特征,使用智能感應功能(IntelliSense)集成的Code Snippets可以大大提高開發(fā)者的工作效率,因為開發(fā)者只需要按幾個鍵就可以完成工作,使用起來非常簡單方便。
1. 快速給類添加屬性
通用的代碼片段可以使用戶非常方便地給類添加屬性。只需往Visual Studio源碼中鍵入prop,如圖2-20所示。

圖2-20 輸入prop屬性
然后按鍵盤上的“Tab”鍵兩次就可以添加一個屬性。系統(tǒng)自動添加屬性基本結(jié)構(gòu),程序開發(fā)人員減少了代碼的輸入工作量,節(jié)省了代碼書寫時間,如圖2-21所示。

圖2-21 prop屬性
2. 快速語句錄入
Snippets與許多代碼通用,它們共同使用IntelliSense功能中的關(guān)鍵詞。只要選擇關(guān)鍵詞,按鍵盤上的“Tab”鍵兩次就可以插入Snippets。例如if、for、foreach、switch、while和using等。下面以for為例,在程序中開發(fā)人員經(jīng)常需要使用for循環(huán),每次都要重復去寫相同的代碼,而使用Code Snippets只需按兩下“Tab”鍵可以自動生成其格式。首先在程序中輸入“for”短語,然后兩次按下鍵盤“Tab”鍵,自動生成如圖2-22所示的“for”片段代碼。

圖2-22 for片段代碼
2.5.2 智能感應(Generate From Usage)
Generate From Usage是Visual Studio 2010的新功能,其能讓程序開發(fā)人員先使用未定義的類別與成員,事后,再去定義它。例如,開發(fā)人員可以在程序中先使用類、結(jié)構(gòu)、方法、屬性、變量等,然后再進行定義,這個特性使得Visual Studio對測試驅(qū)動開發(fā)的支持更加強大,它可以減少用戶的代碼輸入量,另外這種特性通過Generate From Usage產(chǎn)生程序的同時,焦點仍會保持在原本的程序窗口位置,使用起來十分方便。
下面介紹Generate From Usage的使用。
(1)在程序中使用未經(jīng)定義的類,程序代碼如下:
01 namespace helloworld 02 { 03 class Program 04 { 05 static void Main(string[] args) 06 { 07 var test = new MyClass(firstParameter: "Hello", secondParameter: 0); 08 test.FirstProperty = 1; 09 test.MyField = 2; 10 int value = test.MyMethod(100); 11 } 12 } 13 }
由于MyClass這個類還沒定義,所以可以看到在這個類下方有紅線標注高亮提示,如圖2-23所示。

圖2-23 智能感應提示
選中“MyClass”,單擊下拉箭頭,選擇“生成簡單的類”或者按“Ctrl+.”組合鍵,Visual Studio 2010就可以自動為用戶生成這個類了,利用相同的方法,可以自動生成相關(guān)屬性和方法。生成的完整代碼如下:
01 namespace helloworld 02 { 03 class MyClass 04 { 05 private string firstParameter; //字符變量定義 06 private int secondParameter; //數(shù)值變量定義 07 08 public MyClass(string firstParameter, int secondParameter) 09 { 10 // 初始化變量 11 this.firstParameter = firstParameter; 12 this.secondParameter = secondParameter; //賦值 13 } 14 15 public int FirstProperty { get; set; } 16 17 public int MyField { get; set; } 18 19 internal int MyMethod(int p) 20 { 21 throw new NotImplementedException(); 22 } 23 } 24 }
2.6 小結(jié)
本章講解了C#基礎(chǔ)知識,首先是C#語言的發(fā)展歷史、C#語言的特點和強大的功能,然后詳細介紹了C#創(chuàng)建解決方案和項目,接著以“Hello World”實例向讀者展示“Windows應用程序”、“Web應用程序”、“控制臺應用程序”的創(chuàng)建方法。還介紹了C#中類庫的創(chuàng)建和使用,最后介紹了C# 4.0中的新特性——“代碼片段(Code Snippets)”。
2.7 練習
一、填空題
1.C#是由C和( )發(fā)展而來的編程語言。
2.C#是一種最新的、面向( )的編程語言。
3.創(chuàng)建“Windows”應用程序項目時,Visual Studio 2010會自動創(chuàng)建一個名稱為( )的Windows窗體。
4.類庫是一個類的( )。
5.類庫生成后的擴展名是( )。
二、簡答題
1.簡述C#語言的特點。
2.什么是類庫?
3.如何創(chuàng)建類庫?
三、上機題
1.創(chuàng)建Windows應用程序,在窗體上輸出“歡迎使用Visual Studio 2010 C#”。
2.創(chuàng)建Web應用程序,在頁面上顯示“歡迎使用Visual Studio 2010 C#”。
3.創(chuàng)建控制臺應用程序,輸出“歡迎使用Visual Studio 2010 C#”。
4.用C#創(chuàng)建一個名稱為Founction_Library的類庫,要求在類庫中寫一個輸出函數(shù)my_output(),其功能是輸出字符串“恭喜你調(diào)用Founction_Library成功!”,且在項目中調(diào)用所創(chuàng)建的類庫。
- Java逍遙游記
- Learn Type:Driven Development
- 微服務設計原理與架構(gòu)
- 鋒利的SQL(第2版)
- Web程序設計(第二版)
- PySide GUI Application Development(Second Edition)
- Mastering Ext JS
- Spring快速入門
- Nginx Lua開發(fā)實戰(zhàn)
- Learning OpenStack Networking(Neutron)(Second Edition)
- LabVIEW虛擬儀器入門與測控應用100例
- R數(shù)據(jù)科學實戰(zhàn):工具詳解與案例分析
- Node.js開發(fā)指南
- Nagios Core Administration Cookbook(Second Edition)
- Ext JS 4 Plugin and Extension Development