畢業生的商業軟體開發之路 — C#基本文法-C#代碼模組邏輯架構

來源:互聯網
上載者:User
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#代碼時,記得要根據需要寫上分號“;”。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.