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

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

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

圖2-4 2.2解決方案資源管理器
創建“Windows”應用程序項目時,Visual Studio 2010會自動創建一名稱為“Form1”的Windows窗體和一個名稱為“Program.cs”的類文件,文件主要用于設置項目的啟動窗體,也就是項目運行時的入口。另外還添加了運行Windows程序所需的相關引用資源。
2.2.2 解決方案中添加項目
解決方案可以包含多個項目,可以通過在現有解決方案中新建項目和添加現有項目方式給解決方案添加項目,步驟如下。
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節學習的知識,讀者已經了解在Visual Studio 2010中創建Visual C#解決方案和項目,本節將通過“Hello World”實例來分別介紹Windows應用程序、Web應用程序、控制臺應用程序的創建和使用。
2.3.1 創建Windows應用實例
本節將介紹如何創建Windows應用程序。
1.創建Windows應用程序
創建Windows應用程序,首先需要創建Windows應用項目,操作方法:首先啟動Visual Studio 2010,在菜單欄選擇“文件”→“新建”→“項目”命令,然后在彈出的窗口中選擇項目類型為Windows應用程序,輸入項目名稱“HelloWorld”。創建Windows應用項目詳細操作步驟可以參照2.2節所介紹的項目創建方法。
2.命名
可以在項目創建時輸入項目的名稱,如圖2-3所示的新建Windows應用程序窗口,在“名稱”文本框中輸入項目名稱“HelloWorld”,也可以在項目創建后進行重命名,操作方法:在如圖2-7所示的“HelloWorld”解決方案的資源管理器中,用鼠標右鍵單擊項目名稱“HelloWorld”,在彈出的快捷菜單中選擇“重命名”命令,如圖2-8所示,輸入新的項目名稱。

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

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

圖2-9 代碼窗口
(1)打開Form1的窗體設計器,在左側工具欄菜單“通用控件”中單擊“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應用程序已經完成,可以通過運行來查看效果。按“F5”鍵或選擇菜單欄上的“調試”→“啟動調試”命令來運行程序,如圖2-11所示。

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

圖2-12 新建Web應用程序
(5)單擊“確定”按鈕,將創建名稱為“Hello World”的“Web”應用項目。
2.編寫代碼
創建Web應用程序項目時,系統會自動在解決方案管理器中添加名稱為“Default”的Web頁。Web頁代碼分為前臺代碼和后臺代碼,前臺代碼一般指的是網頁代碼,如HTML、JavaScript等。這里主要介紹后臺代碼編寫。代碼窗口打開方法與Windows應用程序代碼窗口相同,以直接在Web頁設計器上單擊鼠標右鍵,在彈出的快捷菜單中選擇“查看代碼”命令,也可以使用快捷鍵“F7”來打開代碼編寫窗口。接下來也在Web頁上顯示“Hello World”。
(1)雙擊解決方案管理器中的“Default.aspx”,在窗口下方選擇“設計”,然后從左側工具欄菜單“標準控件”中拖動“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”鍵或選擇菜單欄上的“調試”→“啟動調試”命令來運行程序。運行Web項目時,Visual Studio 2010自動打開一個端口來對Web項目進行調試運行。運行結果如圖2-14所示。

圖2-14 Web應用運行結果
2.3.3 創建控制臺應用程序
下面來介紹如何使用C# 4.0創建控制臺應用程序。
1.創建控制臺應用程序項目
創建控制臺應用程序項目在第1章有過簡單介紹,此處詳細講解創建控制臺應用程序項目的操作步驟。
(1)啟動Visual Studio 2010,選擇“開始”→“程序”→“Microsoft Visual Studio 2010”→“Microsoft Visual Studio 2010”命令。
(2)選擇“文件”→“新建”→“項目”命令,彈出“新建項目”對話框。
(3)在“新建項目”對話框的“已安裝的模板”窗格中選擇項目的類型,此處選擇“Visual C#”,然后選擇“Windows”。
(4)在“模板”窗格中選擇“控制臺應用程序”。在“名稱”文本框中輸入項目名稱“Hello World”,“位置”下拉列表框中顯示了解決方案保存位置,可以單擊“瀏覽”按鈕更改保存位置。
(5)單擊“確定”按鈕,將創建名稱為“Hello World”的控制臺應用程序項目。
2.讓控制臺應用程序向你打個招呼
控制臺應用項目創建完畢之后,在“解決方案管理器”的文件結構中,可以看到已經創建好的一個Program.cs文件。在該文件中,可以編寫控制臺應用程序的主函數代碼,來向你打個招呼。操作方法如下:
(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鍵之后,關閉控制臺應用程序 13 } 14 } 15 }
3.設置啟動項目
如果解決方案要有多個項目,必須為解決方案設置一個啟動項目,在解決方案資源管理器中,選擇對應的項目名稱,用鼠標右鍵單擊,在彈出的快捷菜單中選擇“設置為啟動項目”命令,如圖2-15所示。設置啟動項目后,該項目名稱將以黑色粗體顯示。

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

圖2-16 類庫解決方案管理器
類庫項目創建完成后,系統自動給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)給類增加一個方法。
創建類庫時雖然Visual Studio添加了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 { 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。
單擊“創建”菜單,選擇“創建My_Libray”將編譯類文件,編譯完成后會在項目文件的in\debug目錄生成名稱為My_Libray的dll文件。
2.4.2 定義引用
類庫創建完成后,如果想在項目中調用類庫,首先需要引用類庫,打開2.3.3節創建的控制臺應用項目,在解決方案管理器中用鼠標右鍵單擊“引用”,在彈出的快捷菜單中選擇“添加引用”命令,如圖2-17所示。在彈出的對話框中選擇“Browse”選項卡,在選項卡中找到所生成的類庫文件所在的目錄,選擇“My_Library”,單擊“OK”按鈕,如圖2-18所示。

圖2-17 添加引用

圖2-18 “Add Reference”對話框
2.4.3 調用類庫的功能
如果需要在程序文件中使用類,除了在解決方案中添加引用外,還需要在程序文件中引用名稱空間和初始化類對象,所需操作如下:
(1)引用名稱空間:using My_Library。
(2)創建一個Class1的對象:Class1 myclass = new Class1()。
(3)調用方法:
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”鍵或者單擊工具欄中的“啟動調試”按鈕,運行結果如圖2-19所示。

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

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

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

圖2-22 for片段代碼
2.5.2 智能感應(Generate From Usage)
Generate From Usage是Visual Studio 2010的新功能,其能讓程序開發人員先使用未定義的類別與成員,事后,再去定義它。例如,開發人員可以在程序中先使用類、結構、方法、屬性、變量等,然后再進行定義,這個特性使得Visual Studio對測試驅動開發的支持更加強大,它可以減少用戶的代碼輸入量,另外這種特性通過Generate From Usage產生程序的同時,焦點仍會保持在原本的程序窗口位置,使用起來十分方便。
下面介紹Generate From Usage的使用。
(1)在程序中使用未經定義的類,程序代碼如下:
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就可以自動為用戶生成這個類了,利用相同的方法,可以自動生成相關屬性和方法。生成的完整代碼如下:
01 namespace helloworld 02 { 03 class MyClass 04 { 05 private string firstParameter; //字符變量定義 06 private int secondParameter; //數值變量定義 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 小結
本章講解了C#基礎知識,首先是C#語言的發展歷史、C#語言的特點和強大的功能,然后詳細介紹了C#創建解決方案和項目,接著以“Hello World”實例向讀者展示“Windows應用程序”、“Web應用程序”、“控制臺應用程序”的創建方法。還介紹了C#中類庫的創建和使用,最后介紹了C# 4.0中的新特性——“代碼片段(Code Snippets)”。
2.7 練習
一、填空題
1.C#是由C和( )發展而來的編程語言。
2.C#是一種最新的、面向( )的編程語言。
3.創建“Windows”應用程序項目時,Visual Studio 2010會自動創建一個名稱為( ?。┑腤indows窗體。
4.類庫是一個類的( ?。?/p>
5.類庫生成后的擴展名是( ?。?。
二、簡答題
1.簡述C#語言的特點。
2.什么是類庫?
3.如何創建類庫?
三、上機題
1.創建Windows應用程序,在窗體上輸出“歡迎使用Visual Studio 2010 C#”。
2.創建Web應用程序,在頁面上顯示“歡迎使用Visual Studio 2010 C#”。
3.創建控制臺應用程序,輸出“歡迎使用Visual Studio 2010 C#”。
4.用C#創建一個名稱為Founction_Library的類庫,要求在類庫中寫一個輸出函數my_output(),其功能是輸出字符串“恭喜你調用Founction_Library成功!”,且在項目中調用所創建的類庫。