C#入門到精通系列課程——第2章編寫C#程序


◆本章內容

(1)熟悉Visual Studio 2017開發環境

(2)編寫第一個C#程序

(3)C#程序結構預覽

(4)程序編寫規范

(5)難點解答

◆本章簡述

要學習C#編程,必然要熟悉C#程序的結構,而為了能夠養成一個良好的編碼習慣,在學習C#之初,熟悉常用的C#程序編寫規范也是非常重要的。本章將詳細介紹如何編寫一個C#程序,以及C#程序的基本結構;另外,還對C#程序的常用編寫規范進行介紹。

◆知識框架

 

 

 

 

2.1  熟悉Visual Studio 2017開發環境

本節對Visual Studio 2017開發環境中的菜單欄、工具欄、解決方案資源管理器、“工具箱”窗口、“屬性”窗口和“錯誤列表”窗口等進行介紹。

2.1.1  創建Windows控制台應用項目

初期學習C#語法和面向對象編程主要在Windows控制台應用程序環境下完成,下面將按步驟介紹控制台應用程序的創建過程。

創建控制台應用程序的步驟如下:

(1)選擇“開始”→“所有程序”→Visual Studio 2017, 進入Visual Studio 2017開發環境起始頁,如圖2.1所示。

 

 

 (2)啟動Visual Studio 2017開發環境之后,可以通過兩種方法創建項目:一種是在菜單欄中選擇“文件”→“新建”→“項目”菜單項,如圖2.2所示;另一種是在“起始頁”中選擇“新建項目”板塊中的相應命令,如圖2.3所示。

選擇其中一種方法創建項目,彈出如圖2.4所示的“新建項目”對話框。

 

 

 

說明:在圖2.4中選擇“Windows 窗體應用(.NET Framework)”,即可創建Windows的窗體程序。

(3)選擇要使用的.NET框架和“控制台應用(NET Framework)”后,用戶可以對所要創建的控制台應用進行命名、選擇存放位置、是否創建解決方案目錄等設定(在命名時可以使用用戶自定義的名稱,也可以使用默認名ConsolcAppl:用戶可以單擊“瀏覽”按鈕設置項目存放的位置:需要注意的是,解決方案名稱與項目名稱一定要統一),然后單擊“確定”按鈕,完成控制台應用程序的創建。

 

2.1.2  菜單欄

菜單欄顯示所有可用的Visual Studio 2017命令,除了“文件”“編輯”“視圖”“窗口”和“幫助”菜單之外,還提供編程專用的功能菜單,如“項目”“生成”“調試”“工具”和“測試”等,如圖2.5所示。

 

 每個菜單項中都包含若干個菜單命令,分別執行不同的操作,例如, “調試”菜單包括調試程序的各種命令,如“開始調試”“開始執行”和“新建斷點”等,如圖2.6所示。

 

 

2.1.3  工具欄

為了操作更方便、快捷,菜單項中常用的命令按功能分組分別放入相應的工具欄中。通過工具欄可以快速訪問常用的菜單命令。常用的工具欄有標准工具欄和調試工具欄,下面分別進行介紹。

(1) 標准工具欄包括大多數常用的命令按鈕,如新建項目、添加新項、打開文件、保存、全部保存等。標准工具欄如圖2.7所示。

 

 (2)調試工具欄包括對應用程序進行調試的快捷按鈕,如圖2.8 所示。

 

 

說明:在調試程序或運行程序的過程中,通常可以使用以下4種快捷鍵來操作:

(1)按下<F5>快捷鍵實現調試運行程序;

(2)按下<Ctrl+F5> 快捷鍵實現不調試運行程序;

(3)按下<F11>快捷鍵實現逐語句調試程序;

(4)按下<F10>快捷鍵實現逐過程調試程序。

2.1.4  “工具箱”窗口

工具箱是Visual Studio 2017的重要工具,每一個開發人員都必須對這個工具非常熟悉。工具箱提供了進行C#程序開發所必需的控件。通過工具箱,開發人員可以方便地進行可視化的窗體設計,既簡化了程序設計的工作量,又提高了工作效率。根據控件功能的不同,將工具箱划分為10個欄目,如圖2.9所示。

 

 

說明: “工具箱”窗口在Windows窗體應用程序或者ASP.NET網站應用程序中才會顯示,在控制台應用程序中沒有“工具箱”窗口,圖2.9中顯示的是Windows窗體應用程序中的“工具箱”窗口。

單擊某個欄目,顯示該欄目下的所有控件,如圖2.10所示。當需要某個控件時,可以通過雙擊所需要的控件直接將控件加載到Windows窗體中,也可以先單擊選擇需要的控件,再將其拖動到Windows窗體上。

2.1.5   “屬性”窗口

“屬性”窗口是VisualStudio2017中另一個重要的工具,該窗口中提供了簡單的屬性修改方式。Windows窗體中的各個控件屬性都可以在“屬性”窗口設置完成。“屬性”窗口不僅提供了屬性的設置及修改功能,還提供了事件的管理功能,可以管理控件的事件,方便在編程時對事件進行處理。

另外,“屬性”窗口采用了兩種方式管理屬性和事件,分別為按分類方式和按字母順序方式。可以根據自己的習慣采用不同的方式。該窗口的下方還有簡單的中文說明,方便開發人員對控件的屬性進行操作和修改,“屬性”窗口的左側是屬性名稱,相對應的右側是屬性值。“屬性”窗口如圖2.11所示。

 

 

2.1.6  “錯誤列表”窗口

“錯誤列表”窗口為代碼中的錯誤提供了即時的提示和可能的解決方法。例如,當某句代碼結束忘記了輸入分號時,在錯誤列表中會顯示如圖2.12所示的錯誤。錯誤列表就像是一個錯誤提示器, 它可以將程序中的錯誤及時提示給開發人員,並可以通過提示信息找到相應的錯誤代碼。

 

 

說明:雙擊錯誤列表中的某項,Visual Studio 2017開發環境會自動定位到發生錯誤的代碼上。

2.1.7  “代碼和文本編輯器”窗口

占據IDE大部分的“代碼和文本編輯器”窗口顯示了源(代碼)文件的內容。編輯含有多個文件的項目時,每個源文件都有自己的“標簽”,標簽顯示的是文件名。單擊標簽,即可在“代碼和文本編輯器”中顯示對應的源文件。如圖2.13

 

 

 

2.1.8  解決方案資源管理器

解決方案資源管理器(如圖2.14所示)提供了項目及文件的視圖,並且提供對項目和文件相關命令的便捷訪問。與此窗口關聯的工具欄提供了適用於列表中突出顯示項的常用命令。若要訪問解決方案資源管理器,可以在菜單欄中選擇“視圖”→“解決方案資源管理器”菜單打開。

 

 

“解決方案資源管理器”顯示了項目相關文件的名稱以及其他內容。雙擊文件名即可在“代碼和文本編輯器”中顯示該文件的內容。

寫代碼之前,先了解一下“解決方案資源管理器”列出的文件,它們是作為項目的一部分由Visual Studio 2017自動創建的。

●解決方案“ConsoleApp1”

解決方案文件位於最頂級,每個應用程序都有一個。一個解決方案可以包含一個或多個項目,Visual Studio 2017利用解決方案文件組織項目。解決方案文件名為“解決方案名稱.sln”。

●項目“ConsoleApp1”

C#項目文件。每個項目文件都引用一個或多個包含項目源代碼以及其他內容(比如圖片)的文件。一個項目的所有源代碼都必須使用相同的編程語言。項目文件名為“項目名稱.csproj”

●Properties

這是ConsoleApp1項目中的一個文件夾。 展開會發現AssemblyInfo.cs文件。AssemblyInfo.cs 是用於為程序添加“特性”(atribute)的特殊文件,比如作者姓名和寫程序的日期等。還可利用特性修改程序運行方式。

●引用

該文件夾包含對已編譯好的代碼庫的引用。C#代碼編譯時會轉換成庫,並獲得唯一名稱。Microsoft.NET Framework將這種庫稱為程序集(assembly)。開發人員利用程序集打包自己開發的有用功能,並分發給其他程序員供其使用。展開“引用”文件夾會看到Visual Studio 2017在項目中添加的一組默認程序集引用。利用這些程序集可訪問.NET Framework的大量常用功能。

●App.config

應用程序配置文件。由於可選,所以並非肯定存在。可在其中指定設置,讓應用程序在運行時修改其行為,比如修改運行應用程序的.NET Framework版本。

●Program.cs

C#源代碼文件。項目最初創建時,“代碼和文本編輯器”顯示的就是該文件,稍后要在該文件中為控制台應用程序編寫代碼。它包含Visual Studio2017自動生成的一些代碼,稍后將詳細討論。

2.2  編寫第一個C#程序

在大多數編程語言中,編寫的第一個程序通常都是輸出“HelloWorld”,這里將使用VisualStudio2017和C#語言來編寫這個程序。使用Visual Studio 2017開發C#程序的基本步驟,如圖2.15所示。

 

(1)按2.1.1節內容中的步驟創建一個名為“Hello_World”的控制台應用程序。

(2)控制台應用程序創建完成后,會自動打開Program.cs文件,Program.cs文件定義了Program 類,其中包含Main方法。C#的所有可執行代碼都必須在方法中定義,而方法必須從屬於類或結構(將在后期章節詳細講解),在該文件的Main方法中輸入代碼,具體代碼如下:

 

 

代碼注解:

(1)第1行代碼是自動生成的Main方法,用來作為程序的入口方法,每一個C#程序都必須有一個Main方法。

必須像本例的Program類那樣把它定義成靜態方法,否則應用程序運行時.NET Framework可能不把它視為起點(將在后期章節詳細講解)。

(2)第3行代碼中的Console.WriteLine方法主要用來向控制台中輸出內容。

(3)第4行代碼中的Console.ReadLine方法主要用來獲取控制台中的輸出,這里用來將控制台窗體固定到桌面上。

代碼編寫完成后,單擊Visual Studio 2017開發環境工具欄中口啟動圖標按鈕,運行該程序,效果如圖2.16所示。

 

 

在上面的代碼中,使用C#輸出了開發人員進入“編程世界”后遇到的一個最經典語句“Hello World",下面通過一個實例講解如何在C#中輸出中文內容。

2.2.1  實例01:輸出“人因夢想而偉大”

創建一個控制台應用程序,使用Console.WriteLine方法輸出小米董事長雷軍的經典語錄“人因夢想而偉大”,完整代碼如下:

 

 

代碼注解:

(1)第1行到第4行代碼是自動生成的代碼,用來引用默認的命名空間。

(2)第6行是自動生成的命名空間,該命名空間的名稱默認與創建的項目名稱相同,開發人員可以手動修改。

(3)第8行代碼是自動生成的一個Program類, 該類是C#程序的啟動類,類的名稱可以手動修改。程序運行效果如圖2.17所示。

 

 

2.2.2  拓展訓練

一、在控制台應用程序中輸出馬雲在阿里巴巴上市時說的一句經典語錄“夢想還是要有的,萬一實現了呢!”。

二、在控制台中輸出一個情人節快樂圖案,程序運行結果如圖2.5所示。

 

 

2.3   C#程序結構預覽

在上一節中編寫的第一個C#程序,其完整代碼效果如圖2.19所示。

從圖2.19中可以看出,一個C#程序總體可以分為命名空間、類、關鍵字、標識符、Main 方法、C#語句和注釋等。本節將分別對C#程序的各個組成部分進行詳細講解。

 

 

2.3.1  命名空間

在Visual Studio開發環境中創建項目時,會自動生成一個與項目名稱相同的命名空間,例如,在2.2節中創建“Hello_World”項目時,會自動生成一個名稱為“Hello_World”的命名空間,如圖2.20所示。

 

 

命名空間在C#中起到組織程序的作用,正如圖2.7所示,在C#中定義命名空間時,需要使用namespace關鍵字,其語法如下:

namespace命名空間名

說明:開發人員一般不用自定義命名空間,因為在創建項目或者創建類文件時,Visual Studio開發環境會自動生成一個命名空間。

命名空間既用作程序的“內部”組織系統,也用作向“外部”公開的組織系統(即一種向其他程序公開自己擁有的程序元素的方法)。如果要調用某個命名空間中的類或者方法,需要先使用using指令引入命名空間,這樣,就可以直接使用該命名空間中所包含的成員(包括類及類中的屬性、方法等)。using指令的基本形式為:

using命名空間名;

說明: C#中的命名空間就好像一個存儲了不同類型物品的倉庫,而using指令像一把鑰匙,命名空間的名稱就好比倉庫的名稱,用戶可以通過鑰匙打開指定名稱的倉庫,然后便可以從倉庫中獲取所需的物品,其示意圖如圖2.21所示。

 

 例如,定義一個名稱為Demo的命名空間,代碼如下:

 

 定義完命名空間后,如果要使用命名空間中所包含的類,需要使用using引用命名空間,例如,使用using引用Demo命名空間的代碼如下:

 

 

 

常見錯誤:如果在使用指定命名空間中的類時,沒有使用using引用命名空間,如下面代碼:

 

 

則會出現如圖2.22所示的錯誤提示信息。

 

 

要改正以上代碼,可以直接在命名空間區域使用using引用Demo命名空間,代碼如下:

 

 

★多學兩招: 使用完全限定名稱。在使用命名空間中的類時,如果不想用using指令引用命名空間,可以在代碼中使用命名空間調用其中的類,例如,直接使用Demo命名空間調用其中的Operation類,代碼如下:

 

 

2.3.2  類

C#程序的主要功能代碼都是在類中實現的,類是一種數據結構,它可以封裝數據成員、方法成員和其他的類。因此,類是C#語言的核心和基本構成模塊。C#支持自定義類,使用C#編程就是編寫自己的類來描述實際需要解決的問題。

說明:如果把命名空間比作一個醫院,類就相當於該醫院的各個科室,如內科、骨科、泌尿科、眼科等,在各科室中都有自己的工作方法,相當於在類中定義的變量、方法等。命名空間與類的關系示意圖如圖2.23所示。

 

 

使用類之前都必須先進行聲明,一個類一旦被聲明,就可以作為一種新的類型來使用,在C#中通過使用class關鍵字來聲明類,聲明語法如下:

class [類名]

{

[類中的代碼]

}

說明:聲明類時,還可以指定類的修飾符和其要繼承的基類或者接口等信息,這里只要知道如何聲明一個最基本的類即可,關於類的內容,將會后面章節進行詳細講解。

上面的語法中,在命名類的名稱時,最好能夠體現類的含義或者用途,而且類名一般采用第一個字母大寫的名詞,也可以采用多個詞構成的組合詞。

例如,聲明一個汽車類,命名為Car,該類沒有任何意義,只用於演示如何聲明一個類,代碼如下:

 

2.3.3  關鍵字與標識符

1.關鍵字

關鍵字是C#語言中已經被賦予特定意義的一些單詞,開發程序時,不可以把這些關鍵字作為命名空間、類、方法或者屬性等來使用。在前面編寫的程序中看到的using、namespace、 class、static和void等都是關鍵字。C#語言中的常用關鍵字如圖2.24所示。

 

常見錯誤:如果在開發程序時,使用C#中的關鍵字作為命名空間、類、方法或者屬性等的名稱,例如下面代碼使用關鍵字void作為類的名稱:

 

 

 

則會出現如圖2.25所示的錯誤提示信息。

 

 

 

2.標識符

標識符可以簡單地理解為一個名字,比如每個人都有自己的名字,它主要用來標識類名、變量方法名、屬性名、數組名等各種成員。

C#語言標識符命名規則如下:

(1)由任意順序的字母、下划線(_ )和數字組成。

(2)第一個字符不能是數字。

(3)不能是C#中的保留關鍵字。

下面是合法的標識符:

下面是非法標識符:

 

 

注意: C# 中標識符中不能包含#、%或者$等特殊字符。

在C#語言中,標識符中的字母是嚴格區分大小寫的,兩個同樣的單詞,如果大小寫格式不一樣,所代表的意義是完全不同的。例如,下面3個變量是完全獨立、毫無關系的,就像3個相貌相似的人,實際上彼此之間都是獨立的個體。

 

 說明:在C#語言中允許使用漢字作為標識符,如“class運算類”,在程序運行時並不會出現錯誤,但建議讀者盡量不要使用漢字作為標識符。

2.3.4   Main 方法

在Visual Studio開發環境中創建控制台應用程序后,會自動生成一個 Program.cs文件,該文件有一個默認的Main方法,代碼如下:

 

 

每一個C#程序中都必須包含一個Main方法,它是類體中的主方法,也叫入口方法,可以說是激活整個程序的開關。Main 方法從“{”開始,至“}”結束。static 和void分別是Main方法的靜態修飾符和返回值修飾符,C#程序中的Main方法必須聲明為static,並且區分大小寫。

常見錯誤:如果將Main方法前面的static關鍵字刪除,則程序會在運行時出現如圖2.26所示的錯誤提示信息。

 

 

Main方法一般都是創建項目時自動生成的,不用開發人員手動編寫或者修改,如果需要修改,則需要注意以下3個方面:

◆Main方法在類或結構內聲明,它必須是靜態(static)的,而且不應該是公用(public) 的。

◆Main的返回類型有兩種:void或int.

◆Main方法可以包含命令行參數string[]args,也可以不包括。

根據以上3個注意事項,可以總結出,Main方法可以有以下4種聲明方式:

static void Main(string[] args){}

static void Main(){}

static int Main(string[] args){}

static int Main(){}

★多學兩招:通常Main方法中不寫具體邏輯代碼,只用作類實例化和方法調用。這個過程就好比手機來電話了,只需要按“接通”鍵就可以通話,而不需要考慮手機通過怎樣的信號轉換將電磁信號轉化成聲音。這樣的代碼簡潔明了,容易維護。養成良好的編碼習慣,可以讓程序員的工作事半功倍。

2.3.5   C#語句

語句是構造所有C#程序的基本單位,使用C#語句可以聲明變量、常量、調用方法、創建對象或執行任何邏輯操作,C#語句以分號終止。

例如,在Hello World程序中輸出“Hello World”字符串和定位控制台的代碼就是C#語句:

 

 

上面的代碼是兩條最基本的C#語句,用來在控制台窗口中輸出和讀取內容,它們都用到了Console類。Console類表示控制台應用程序的標准輸入流、輸出流和錯誤流,該類中包含很多的方法,但與輸入輸出相關的方法主要有4個,如圖2.27所示。

 

 

其中,Console.Read方法和Console.ReadLine方法用來從控制台讀入,它們的使用區別如下:

◆Console.Read 方法:返回值為int類型,只能記錄int類型的數據。

◆Console.ReadLine方法:返回值為string類型,可以將控制台中輸入的任何類型數據存儲為字符串類型數據。

★多學兩招:在開發控制台應用程序時,經常使用Console.Read方法或者Console.ReadLine 方法固定控制台窗體。

Console.Write方法和Console.WriteLine方法用來向控制台輸出,它們的使用區別如下:

◆Console.Write 方法:輸出后不換行。

例如,以下是使用Console.Write方法輸出“Hello World”字符串,效果如圖2.28所示。

 

 

◆Console.WriteLine 方法:輸出后換行。

例如,以下是使用Console.WriteLine方法輸出“Hello World"字符串,效果如圖2.29所示。

 

 注意: C#代碼中所有的字母、數字、括號以及標點符號均為英文輸入法狀態下的半角符號,而不能是中文輸入法或者英文輸入法狀態下的全角符號。例如,圖2.30為使用中文輸入法的分號引起的錯誤提示。

 

 

2.3.6  注釋

注釋是在編譯程序時不執行的代碼或文字,其主要功能是對某行或某段代碼進行說明,方便代碼的理解與維護,或者在調試程序時,將某行或某段代碼設置為無效代碼。常用的注釋主要有行注釋和塊注釋兩種,下面分別進行簡單介紹。

說明:注釋就像是超市中各商品下面的價格標簽,對商品的名稱、價格、產地等信息進行說明,如圖2.31所示;而程序中,注釋的基本作用是描述代碼的作用,告訴別人你的代碼要實現什么功能。

 

 

1.行注釋

行注釋是以符號“//”開頭,其后面是注釋的內容。例如,在Hello World程序中使用行注釋,解釋每一行代碼的作用,代碼如下:

 

 

注意:注釋可以出現在代碼的任意位置,但是不能分隔關鍵字和標識符。例如,下面的代碼注釋是錯誤的:

 

 

2.塊注釋

如果注釋的行數較少,一般使用行注釋。對於連續多行的大段注釋,則使用塊注釋,塊注釋通常以“/*”標記開始,以“*/”標記結束,注釋的內容放在它們之間。

例如,在HelloWorld程序中使用塊注釋將輸出HelloWorld字符串和定位控制台窗體的C#語句注釋為無效代碼,代碼如下:

 

 

★多學兩招:塊注釋通常用來為類文件、類或者方法等添加版權、功能等信息,例如,用塊注釋為Program.cs 類添加版權、功能及修改日志等信息。

 

 

2.3.7  實例02:輸出軟件啟動頁

通過以上內容的講解,我們熟悉了C#程序的基本組成,下面通過一個實例講解如何編寫一個完整的C#程序。

使用Visual Studio 2017開發環境創建一個控制台應用程序,然后使用Console.WriteLine方法在控制台中模擬輸出“編程詞典(珍藏版)”軟件的啟動頁。代碼如下:

 

 完成以上操作后,單擊Visual Studio 2017開發環境工具欄中圖標按鈕,即可運行該程序。程序運行結果如圖2.32所示。

 

 

2.3.8  拓展訓練

一、在控制台應用程序中模擬以下場景:

計算機先輸出:歡迎使用XXX充值業務,請輸入充值金額:

用戶輸入: 100

計算機再輸出:充值成功,您本次充值100元。

二、在控制台中輸出一個百花園圖案,程序運行結果如圖2.33所示。

 

 

2.4  程序編寫規范

下面給出兩段實現同樣功能的代碼,如圖2.34所示。

在學習時,願意看圖2.34中的左側代碼還是右側代碼?答案應該是肯定的,通常會選擇圖2.34中的代碼段2,因為它看上去結構更加清晰,這是一種最基本的代碼編寫規范。本節將對C#代碼的編寫規則以及命名規范進行介紹。遵循一定的代碼編寫規則和命名規范可以使代碼更加規范化,對代碼的理解與維護起到至關重要的作用。

 

 

2.4.1  代碼編寫規則

代碼編寫規則通常對應用程序的功能沒有影響,但它們對於改善源代碼的理解是有幫助的。養成良好的習慣對於軟件的開發和維護都是很有益的,下面列舉一些常用的代碼編寫規則:

◆在編寫C#代碼時,建議先連續輸入一對匹配的字符,例如(和)以及{和},再在其中填寫內容。先填寫內容容易忘記輸入結束字符。

◆編寫C#程序時,統一代碼縮進的樣式,比如統一縮進兩個字符或者4個字符的位置。

◆每編寫完-行C#代碼后都應該換行編寫下一行代碼。

◆在編寫C#代碼時,應該合理使用空格,以便使代碼結構更加清晰。

◆盡量使用接口,然后使用類實現接口,以提高程序的靈活性。

◆關鍵的語句(包括聲明關鍵的變量)必須要寫注釋。

◆建議局部變量在最接近使用它的地方聲明。

◆不要使用goto系列語句,除非是用在跳出深層循環時。

◆避免編寫超過5個參數的方法,如果要傳遞多個參數,則使用結構。

◆避免書寫代碼量過大的try…catch語句塊。

◆避免在同一個文件中編寫多個類。

◆生成和構建一個長的字符串時,一定要使用StringBuilder類型,而不用string類型。

◆對於if語句,應該使用一對大括號“{ }”把語句塊括起來。

◆switch 語句一定要有default語句來處理意外情況。

2.4.2  命名規范

命名規范在編寫代碼中起到很重要的作用,雖然不遵循命名規范,程序也可以運行,但是使用命名規范可以更加直觀地了解代碼所代表的含義。本節將介紹C#中常用的一些命名規范。

1.兩種命名方法

在C#中,最常用的有兩種命名方法,分別是Pascal(帕斯卡或大駝峰)命名法和Camel(小駝峰)命名法,下面分別介紹。

◆用Pascal命名法來命名方法和類型,首字母必須大寫,且后面連接詞的首字母均為大寫。

說明: Pascal 是以紀念法國數學家Blaise Pascal而命名的一種編程語言,C# 中的Pascal命名法就是根據該語言的特點總結出來的一種命名方法。

例如,定義一個公共類,並在此類中創建一個公共方法,代碼如下:

 

 

◆用Camel命名法來命名局部變量和方法的參數,Camel命名法是指名稱中第一個單詞的首字母小寫。

說明:Camel命名法又稱駝峰式命名法,它是由駱駝的體型特征推理出來的一種命名方法。

例如,聲明一個字符串變量和創建一個公共方法,代碼如下:

 

 

2.程序中的命名規范

在開發項目時,通常要遇到各個程序元素的命名問題,比如項目的命名、類的命名、方法的命名等,例如,圖2.35 中聲明了一個User類,圖2.36 中聲明了一個aaa類。

 

 

查看圖2.35和圖2.36,從類的命名上,圖2.35中的User類,可以很容易看出是與用戶相關的一個類,但是圖2.36中聲明的aaa類,很難直接看出其主要用途。從這兩個例子可以看出,在對程序元素命名時,如果遵循一定的規范,將使代碼更加具有可讀性,下面介紹一下常用程序元素的基本命名規范。

◆命名項目名稱時,可以使用公司域名+產品名稱,或者直接使用產品名稱。

例如,利用公司名和產品名定義命名空間,例如,在命名項目時,可以將項目命名為“mingrisof.ERP"或者“ERP”,其中,mingrisoft是公司的域名,ERP是產品名稱。

◆用有意義的名字定義命名空間,如公司名、產品名。

例如,利用公司名和產品名定義命名空間,代碼如下:

 

 

◆接口的名稱加前綴“I"。

例如,創建一個公共接口Iconvertible, 代碼如下:

 

 

◆類的命名最好能夠體現出類的功能或操作。

例如,創建一個名稱為Operation的類,用來作為運算類,代碼如下:

 

 

◆方法的命名:一般將其命名為動賓短語,表明該方法的主要作用。

例如,在公共類File中創建CreateFile方法和GetPath方法,代碼如下:

 

 

◆定義成員變量時,最好加前綴“_”。

例如,在公共類DataBase中聲明一個私有成員變量connectionString, 代碼如下:

 

 

2.5  難點解答

2.5.1  區分常見的3種項目類型

使用C#開發項目時,最常見的3種項目類型分別是:控制台應用程序、Windows 窗體應用程序和ASP.NET網站應用程序,其中,控制台應用程序是沒有獨立窗口的程序,一般在命令行運行,其輸入輸出通過標准的IO進行; Windows窗體應用程序是在計算機上運行的客戶端應用程序,可以顯示信息、請求用戶輸入,以及通過網絡與遠程計算機進行通信,比如大家常用的QQ軟件、360安全衛士等; ASP.NET網站應用程序是一種可以通過Web訪問的應用程序,其最大的一個好處就是:用戶很容易訪問,只需要瀏覽器即可,而不需要再安裝其他軟件,比如百度網、新浪網、淘寶網等。3種項目類型的典型界面分別如圖2.36、圖2.37和圖2.38所示。

 

 

2.5.2  為什么要使用注釋?

開發人員編寫程序代碼時,不僅需要電腦理解編寫的程序,也需要其他開發人員讀懂你的代碼,因為一個人永遠不可能只干一件工作或者只在一家公司工作,那么為了項目的后期維護,必須確保代碼能夠被其他人理解。因此,開發人員編寫程序代碼時,一定要說明編寫的代碼主要用來做什么。如圖2.39所示,給出一段沒有注釋的代碼給其他人看,其他人第一眼看上去肯定會是一頭霧水。

 

 

但是,如果給這段代碼加上注釋,如圖2.40所示,這時就可以一目了然地看到這段代碼的具體作用以及每一行代碼的用途。

 

 

 

2.6  小結

本章主要介紹了C#程序的結構、代碼編寫規范和命名規范。在C#程序的結構中,需要重點掌握命名空間、類以及C#語句,其中,命名空間在C#程序中占有重要的地位,通過引入命名空間,可以將命名空間下的類引入到當前項目中;類是C#語言的核心和基本構成模塊,開發人員可以通過編寫各種類來描述實際開發需要解決的問題;語句是構造所有C#程序的基本單位,程序中的任何邏輯操作都需要通過C#語句實現。另外,在編寫程序代碼時,要養成一種良好的編寫習慣,本章列出一些常用的代碼編寫規則和命名規范。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM