C# 簡介

基礎篇

C# 簡介

開發環境

變數與運算

流程控制

陣列

函數

物件

例外處理

函式庫篇

檔案處理

資料結構

正規表達式

Thread

應用篇

視窗程式

媒體影音

網路程式

遊戲程式

手機程式

資料庫

雲端運算

特殊功能

委派

擴展方法

序列化

LinQ

WPF

網路資源

教學影片

投影片

教學文章

軟體下載

考題解答

101習題

C# 是微軟所設計的一種物件導向語言,期設計理念受到 C 與 Java 語言的影響,採用類似 C 語言的語法,並使用類似 Java 語言的虛擬機架構,具備物件導向的能力,是微軟在其主力平台 .NET 上最重要的開發語言。

要使用 C# 開發程式,必須安裝 Visual C# Express 或是 Visual Studio,其中 Visual C# Express 是免費的,您可以下列網址當中下載其安裝程式。

Visual C# express 中文版 — http://www.microsoft.com/visualstudio/cht/downloads

Visual C# Express 的安裝相當簡單,筆者在此不加以說明,但若您希望能在安裝前先預習一遍,可以參考下列網頁的安裝過程。

佳新的部落格 - 下載並安裝Visual C# 2008 Express中文版:
http://jarsing.blogspot.com/2009/01/visual-c-2008-express.html

由於微軟是目前軟體界最大的公司,並且極力推廣 C# 與 .NET 平台,這使得 C# 所支援的程式領域特別廣泛,除了命令列程式之外,C# 還常用在視窗、資料庫、網路、網頁、手機、遊戲等領域,其應用的廣泛性是其他語言所難以趕上的。

以下,我們分別就這些領域,逐一進行介紹。

視窗程式設計

C# 可用來撰寫 MS. Windows 作業系統上的視窗程式。微軟目前的視窗開發套件有兩種,比較舊但卻很成熟的一種稱為 Window Forms,比較新但卻較少人用的一種稱為 WPF (Windows Presentation Foundation)。

Window Forms 採用的是物件導向的視覺化設計元件,您可以用拖拉的方式,輕易的設計出視窗介面,然後利用事件驅動的方式,撰寫該事件的處理程式,像是滑鼠被按下,鍵盤被按下等都會觸發視窗系統中的事件。

WPF 的設計雖然也是物件導向式的,但是為了網路化的考量,微軟創造了一個稱為 XAML 的 XML 規格,讓使用者可以撰寫 XAML 語法以創建使用者介面。這種做法與 Google 在 Android 平台上的做法有點類似,但是直到目前為止,這些規格仍然沒有受到瀏覽器的支援,因此用 XAML 設計使用者介面的必要性並不強烈,筆者仍建議採用 Window Forms 撰寫程式。

資料庫

微軟設計的開發工具,通常都會極力支援自家的產品,因此在 C# 當中最容易使用的是MS. SQL 與 Access 資料庫。但是由於這兩個資料庫都是要收費的,因此對於經費有限的個人而言,並不適當。但是如果您有 MS. SQL 或 Access 等軟體,就會感覺到微軟在資料庫上的用心,因為這是微軟主要的獲利來源。

網路

微軟的 .NET 平台除了支援傳統的 TCP/IP 網路基礎函式庫 Socket 之外,還設計了許多新的網路物件,像是 HTTP 的 WebRequest 等,這些物件可以讓程式設計者更省力的設計出網路程式。但是以筆者觀點,Socket 函式庫仍然是最重要的,因為使用 Socket 函式庫可以讓你清楚的理解網路程式的運作原理,直接透過 TCP/IP 掌握通訊程式的精隨。

網頁

微軟的網頁伺服器 IIS (Internet Information Server) 當中,所使用的開發環境稱為 ASP.NET,這是從過去的 ASP (Active Server Pages) 所延伸而來的。在 ASP.NET 當中支援了 C# 與 VB 等兩種開發語言,您可以輕易的使用 Visual Studio 進行 ASP.NET 的程式開發。

手機

微軟的手機通常稱為 Smart Phone,其作業系統稱為 Windows Mobile (筆者撰稿時版本為 6.5 版),微軟手機屬於智慧型手機,支援 3G, HSDPA, 藍芽, 802.11 等通訊協定,通常被商務人士所使用。

在 iPhone 竄起之後,微軟在手機上的表現就失去了光采。最近,更由於 Google 的手機平台 Android 的影響,微軟手機的魅力盡失,顯然微軟須要在手機領域加把勁,否則將會被 iPhone 與 Android 夾殺,而難以擴大市場佔有率。

即便如此,在 MS. Windows 平台上,微軟手機的開發工具仍然是最完整且成熟的。您可以使用 Visual C# Express 或 Visual Studio 進行微軟手機的程式開發,其方法幾乎與 Window Forms 的程式開發一模一樣。這點對 C# 的程式設計師仍然是相當具有魅力的,我就很喜歡用 C# 開發手機上的程式。

要用 C# 開發手機程式之前,您必須先安裝 Windows Mobile 6 SDK 套件,該套件的下載網址如下。

http://www.microsoft.com/downloads/details.aspx?familyid=06111A3A-A651-4745-88EF-3D48091A390B&displaylang=en

遊戲

微軟在 2007 年推出了 XNA 遊戲開發平台,讓程式設計者可以利用 C# 語言開發遊戲程式,並且可以將這些遊戲放到 PC、XBOX 與 Zune 等裝置上執行,這對想要學習遊戲程式設計的人而言,是一個很好的開發平台。在 XNA 出現之前,遊戲公司都必須購買昂貴的遊戲設計軟體,以便開發遊戲程式。因此遊戲程式成了遊戲公司人員的商業秘密,但是在 XNA 出現之後,個人或者工作室都可以利用 C# 語言,直接開發出遊戲程式,而不需要購買那些昂貴的設計軟體。這對想學習遊戲程式設計的人而言是一個很好的消息,遊戲的開發因 XNA 而變得普及了。

要撰寫 XNA 遊戲程式,您必須安裝 XNA Game Studio 套件於 Visual C# Express 當中,您可以從下列 MSDN 網址中取得該套件。

http://www.microsoft.com/downloads/details.aspx?FamilyID=80782277-d584-42d2-8024-893fcd9d3e82&displaylang=en

跨平台的考量

假如您希望讓 C# 程式在 UNIX/Linux/FreeBSD/MAC OS X 等平台上執行,也可以採用 Novell 公司所主導的 Mono 計畫,該計畫已經發展出一套跨平台的函式庫,讓您可以輕易的將 C# 程式放到非微軟的平台執行,Mono 計畫的網址如下。

http://www.mono-project.com/

最新的發展

C# 語言在 3.0 版當中,加入了許多方便的新語法,像是匿名函數、資料查詢語言 Linq 等等,這些新功能讓 C# 語言超越了 Java ,成為簡單又強大的語言,有興趣的讀者可以觀看下列網頁當中的說明,該文章對 C# 3.0 的功能有簡單且扼要的介紹。

搖擺天秤的程式開發日誌:
http://richielin-programer.blogspot.com/2008/02/visual-c-30.html

結語

雖然我並不是微軟的擁護者,甚至還有點反微軟的傾向,但是我仍然選擇了用 C# 為主要的開發語言。原因是 C# 的用途相當廣泛,支援的體系很完整,Visual C# Express 也很好用,而且我是個實用主義者。

我需要撰寫 Windows 當中的視窗程式、網路程式與遊戲程式,因此我使用 C# 與 Visual C# Express。

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License