毕业生的商业软件开发之路 --- C#基本语法-C#代码模块逻辑框架
C#基本語法
課程介紹
面向讀者說明C#編程語言的基本語法,本章要求閱讀者已經掌握了一種計算機高級編程語言,比如VB或C++等,理解變量、數組、條件判斷、循環等編程知識。達到了國家計算機等級考試二級的水平。
本章是面向C#初學者的,因此只介紹C#的基礎語法,不介紹C#的高級語法。
C#的代碼模塊邏輯框架。
C#代碼模塊邏輯上分為命名空間、類型、成員。
以下就是一個完整的C#源代碼內容,
| using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; ? namespace WindowsFormsApplication1 { ??? public partial class Form1 : Form ??? { ??????? public Form1() ??????? { ??????????? InitializeComponent(); ??????? } ??????? private void button1_Click(object sender, EventArgs e) ??????? { ??????????? MessageBox.Show("顯示一個消息"); ??????? } ??? } } |
這段代碼為例說明一下C#的代碼模塊組織結構。[袁永福版權所有]
命名空間
命名空間就是C#最大的語法結構模塊,這個模塊是按照名稱來標識的。每個類型都有所屬的命名空間。同一個命名空間的類型不能重名,但不同的命名空間可以擁有相同名稱的類型。
在C#中使用以下語法結構來使用命名空間。
| namespace 命名空間名稱 { ??? 若干個類型 } |
在本例中,使用代碼“namespace WindowsFormsApplication1”定義了一個名為“WindowsFormsApplication1”的命名空間,其中定義了名為“Form1”的類型。
對于很多編程語言,比如C語言,它沒有命名空間的概念,幾千個函數排列在一起,對于VB也是幾百個類混在一起,這些都會導致開發人員記憶和調用非常不方便。
而使用命名空間,就能將諸多類型層次化,利于模塊化,而且方便調用。
命名空間也可以分層次,比如以下代碼。
| namespace 命名空間名稱 { ??? 若干個類型 } namespace 命名空間名稱.子命名空間 { ??? 若干個類型 } |
這段代碼就定義了一個命名空間和子命名空間,這個層數是沒有限制的。
?
在C#功能代碼中,要引用某個類型必須是它的類型全名,也就是“命名空間.類型名稱”,此時代碼顯得比較臃腫,而且若未來類型的命名空間發生改變,則需要修改不少代碼。此時C#使用using關鍵字來引用命名空間。
例如在演示代碼的開頭有[袁永福版權所有]一行代碼“using System.Windows.Forms;”,此時就在代碼中引用了命名空間“System.Windows.Forms”,而窗體類型“Form”就在這個命名空間下面,則可以在代碼中直接使用“Form”來獲得窗體的類型,若沒有這個using代碼,則必須使用“System.Windows.Forms.Form”來獲得窗體類型,這就使得代碼顯得有些臃腫。從這里看,using關鍵字的作用有點類似VB中的with關鍵字。
注意using關鍵字除了能引用命名空間外,還能形成自動銷毀對象的語法結構。
類型
命名空間下面就是定義類型了,包括類類型、結構體類型、委托類型。命名空間下面不能直接跟上字段、函數等。因此C#沒有游離于類型之外的函數。
理論上是可以跳出命名空間而直接編寫類型,這樣也能編譯通過,但在實踐中不推薦這么做。
在演示代碼中,使用了以下的代碼定義了一個類型。
| public partial class Form1 : Form { } |
在這里,public關鍵字說明該類型是公開的,可以被任何程序調用。
partial關鍵字說明這段代碼不是這個類型的全部代碼,C#工程中還有其他的代碼文件包含了這個類型的代碼,在編譯程序的時候,編輯器[袁永福版權所有]會收集這些分散的源代碼收集起來組成一份完整的源代碼參與編譯。
class關鍵字說明這是在定義一個類類型。
Form1是新類型的名稱。
Form是跟在Form1后面,中間有一個引號,這個說明新增的類型Form1是集成自已有的類型Form。若前面沒有代碼“using System.Windows.Forms.Form”引用命名空間,則該行代碼必須寫成“public partial class Form1 : System.Windows.Forms.Form”。
Form后面跟著一對花括號就定義了它的類型成員定義區域。
成員
類型下面就是定義類型的成員了,包括字段、屬性、方法和事件。
在演示代碼中,使用以下代碼定義了一個名為Form1的成員方法。
| public Form1() { ?? InitializeComponent(); } |
該方法名稱和類型名稱一樣,而且沒有定義返回值,因此該方法就是該類型的構造函數。
以下代碼定義了一個成員方法。
| private void button1_Click(object sender, EventArgs e) { ?? MessageBox.Show("顯示一個消息"); } |
在這段代碼中,private關鍵字說明該方法是私有的,只能在本類型內部使用,類型之外就不能使用。
void關鍵字說明該方法沒有任何返回值。
button1_Click是該方法的名稱。
“object sender”定義了該方法的第一個參數,object是參數類型,sender是參數名;類似的“EventArgs e” 定義了第二個參數,兩個參數之間用逗號分開。
函數聲明后面就是函[袁永福版權所有]數體了。在這里使用了一行代碼“MessageBox.Show("顯示一個消息");”,這行代碼調用了類型MessageBox的Show方法,參數是字符串“"顯示一個消息"”。這行代碼就是調用類型System.Windows.Forms.MessageBox的Show靜態方法來顯示一個文本消息框。
注意在寫C#代碼時,記得要根據需要寫上分號“;”。
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的毕业生的商业软件开发之路 --- C#基本语法-C#代码模块逻辑框架的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MVC扩展控制器工厂,通过继承Defau
- 下一篇: BZOJ 2751 容易题