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