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。

wang (guest) 05 Oct 2013 14:29

深入淺出好文章,Thanks

by wang (guest), 05 Oct 2013 14:29
kathy (guest) 03 Jul 2014 01:33

C# 是微軟所設計的一種物件導向語言," 期 "設計理念受到 C 與 Java 語言的影響

thanks for you share

by kathy (guest), 03 Jul 2014 01:33
JwanJwen (guest) 12 Jan 2016 07:54

請陳老師收我為徒!!!

我想設計一個 Black Browser: BB,

這個瀏覽器啊 一打開
一所有的黑色字都變成白色字
二所有的背景 都變成黑色背景 如果有分隔視窗 就用彩色線條分隔
三所有圖片或動畫影片都不自動播出

可以打開自己電腦的檔案 像google chrome 的 file:///-

外型類似PTT的極簡風
我要拿到市場上賣 成為 黑色炫風

陳老師
請收我為徒 我會賣的很好的!!!

by JwanJwen (guest), 12 Jan 2016 07:54

Post preview:

(will not be published)


本網頁的作者、授權與引用方式

作者
陳鍾誠,於金門大學資訊工程系,電子郵件:wt.ude.uqn|ccc#wt.ude.uqn|ccc,網站:http://ccckmit.wikidot.com
授權
本文採用創作共用 (Creative Common) 3.0 版的 姓名標示─非商業性─相同方式分享 授權條款,歡迎轉載或修改使用,但若做為商業使用時必須取得授權,引用本文時請參考下列格式。
中文版 (APA格式)
陳鍾誠 (10 Jun 2010 00:36),(網頁標題) C# 簡介,(網站標題) 免費電子書:C# 程式設計,10 Jun 2010 00:36,取自 http://cs0.wikidot.com/introduction ,網頁修改第 10 版。
英文版 (APA格式)
Chung-Chen Chen (10 Jun 2010 00:36), Retrieved 10 Jun 2010 00:36 from http://cs0.wikidot.com/introduction, Page Revision 10.
page revision: 10, last edited: 19 Jun 2021 14:15
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License
Click here to edit contents of this page.
Click here to toggle editing of individual sections of the page (if possible). Watch headings for an "edit" link when available.
Append content without editing the whole page source.
Check out how this page has evolved in the past.
If you want to discuss contents of this page - this is the easiest way to do it.
View and manage file attachments for this page.
A few useful tools to manage this Site.
Change the name (also URL address, possibly the category) of the page.
View wiki source for this page without editing.
View/set parent page (used for creating breadcrumbs and structured layout).
Notify administrators if there is objectionable content in this page.
Something does not work as expected? Find out what you can do.
General Wikidot.com documentation and help section.
Wikidot.com Terms of Service - what you can, what you should not etc.
Wikidot.com Privacy Policy.

AltStyle によって変換されたページ (->オリジナル) /