C# 是一個現代的、通用的、面向對象的程式設計語言,它是由微軟(Microsoft)開發的,由 Ecma 和 ISO 核準認可的。
C# 是由 Anders Hejlsberg 和他的團隊在 .Net 架構開發期間開發的。
C# 是專為公共語言基礎結構(CLI)設計的。CLI 由可執行代碼和運作時環境組成,允許在不同的計算機平台和體系結構上使用各種進階語言。
下面列出了 C# 成為一種廣泛應用的專業語言的原因:
- 現代的、通用的程式設計語言。
- 面向對象。
- 面向元件。
- 容易學習。
- 結構化語言。
- 它産生高效率的程式。
- 它可以在多種計算機平台上編譯。
- .Net 架構的一部分。
C# 強大的程式設計功能
雖然 C# 的構想十分接近于傳統進階語言 C 和 C++,是一門面向對象的程式設計語言,但是它與 Java 非常相似,有許多強大的程式設計功能,是以得到廣大程式員的青睐。
下面列出 C# 一些重要的功能:
- 布爾條件(Boolean Conditions)
- 自動垃圾回收(Automatic Garbage Collection)
- 标準庫(Standard Library)
- 元件版本(Assembly Versioning)
- 屬性(Properties)和事件(Events)
- 委托(Delegates)和事件管理(Events Management)
- 易于使用的泛型(Generics)
- 索引器(Indexers)
- 條件編譯(Conditional Compilation)
- 簡單的多線程(Multithreading)
- LINQ 和 Lambda 表達式
- 內建 Windows
C# 環境
在這一章中,我們将讨論建立 C# 程式設計所需的工具。我們已經提到 C# 是 .Net 架構的一部分,且用于編寫 .Net 應用程式。是以,在讨論運作 C# 程式的可用工具之前,讓我們先了解一下 C# 與 .Net 架構之間的關系。
.Net 架構(.Net Framework)
.Net 架構是一個創新的平台,能幫您編寫出下面類型的應用程式:
- Windows 應用程式
- Web 應用程式
- Web 服務
.Net 架構應用程式是多平台的應用程式。架構的設計方式使它适用于下列各種語言:C#、C++、Visual Basic、Jscript、COBOL 等等。所有這些語言可以通路架構,彼此之間也可以互互相動。
.Net 架構由一個巨大的代碼庫組成,用于 C# 等用戶端語言。下面列出一些 .Net 架構的元件:
- 公共語言運作庫(Common Language Runtime - CLR)
- .Net 架構類庫(.Net Framework Class Library)
- 公共語言規範(Common Language Specification)
- 通用類型系統(Common Type System)
- 中繼資料(Metadata)群組件(Assemblies)
- Windows 窗體(Windows Forms)
- ASP.Net 和 ASP.Net AJAX
- ADO.Net
- Windows 工作流基礎(Windows Workflow Foundation - WF)
- Windows 顯示基礎(Windows Presentation Foundation)
- Windows 通信基礎(Windows Communication Foundation - WCF)
- LINQ
C# 的內建開發環境(Integrated Development Environment - IDE)
微軟(Microsoft)提供了下列用于 C# 程式設計的開發工具:
- Visual Studio 2010 (VS)
- Visual C# 2010 Express (VCE)
- Visual Web Developer
後面兩個是免費使用的,可從微軟官方網址下載下傳。使用這些工具,您可以編寫各種 C# 程式,從簡單的指令行應用程式到更複雜的應用程式。您也可以使用基本的文本編輯器(比如 Notepad)編寫 C# 源代碼檔案,并使用指令行編譯器(.NET 架構的一部分)編譯代碼為元件。
Visual C# Express 和 Visual Web Developer Express 版本是 Visual Studio 的定制版本,且具有相同的外觀和感觀。它們保留 Visual Studio 的大部分功能。在本教程中,我們使用的是 Visual C# 2010 Express。
在 Linux 或 Mac OS 上編寫 C# 程式
雖然 .NET 架構是運作在 Windows 作業系統上,但是也有一些運作于其它作業系統上的版本可供選擇。Mono 是 .NET 架構的一個開源版本,它包含了一個 C# 編譯器,且可運作于多種作業系統上,比如各種版本的 Linux 和 Mac OS。如需了解更多詳情,請通路 Go Mono。
Mono 的目的不僅僅是跨平台地運作微軟 .NET 應用程式,而且也為 Linux 開發者提供了更好的開發工具。Mono 可運作在多種作業系統上,包括 Android、BSD、iOS、Linux、OS X、Windows、Solaris 和 UNIX。
C# 程式結構
C# Hello World 執行個體
一個 C# 程式主要包括以下部分:
- 命名空間聲明(Namespace declaration)
- 一個 class
- Class 方法
- Class 屬性
- 一個 Main 方法
- 語句(Statements)& 表達式(Expressions)
- 注釋
C# 檔案的字尾為 .cs。
以下建立一個 test.cs 檔案,檔案包含了可以列印出 "Hello World" 的簡單代碼:
using System;
namespace HelloWorldApplication
{
class HelloWorld
{
static void Main(string[] args)
{
/* 我的第一個 C# 程式*/
Console.WriteLine("Hello World");
Console.ReadKey();
}
}
}
當上面的代碼被編譯和執行時,它會産生下列結果:
Hello World
讓我們看一下上面程式的各個部分:
- 程式的第一行 using System; - using 關鍵字用于在程式中包含 System 命名空間。 一個程式一般有多個 using 語句。
- 下一行是 namespace 聲明。一個 namespace 裡包含了一系列的類。HelloWorldApplication 命名空間包含了類 HelloWorld。
- 下一行是 class 聲明。類 HelloWorld 包含了程式使用的資料和方法聲明。類一般包含多個方法。方法定義了類的行為。在這裡,HelloWorld 類隻有一個 Main 方法。
- 下一行定義了 Main 方法,是所有 C# 程式的 入口點。Main 方法說明當執行時 類将做什麼動作。
- 下一行 将會被編譯器忽略,且它會在程式中添加額外的 注釋。
- Main 方法通過語句 Console.WriteLine("Hello World"); 指定了它的行為。
WriteLine 是一個定義在 System 命名空間中的 Console 類的一個方法。該語句會在螢幕上顯示消息 "Hello World"。
- 最後一行 Console.ReadKey(); 是針對 VS.NET 使用者的。這使得程式會等待一個按鍵的動作,防止程式從 Visual Studio .NET 啟動時螢幕會快速運作并關閉。
以下幾點值得注意:
- C# 是大小寫敏感的。
- 所有的語句和表達式必須以分号(;)結尾。
- 程式的執行從 Main 方法開始。
- 與 Java 不同的是,檔案名可以不同于類的名稱。
編譯 & 執行 C# 程式
如果您使用 Visual Studio.Net 編譯和執行 C# 程式,請按下面的步驟進行:
- 啟動 Visual Studio。
- 在菜單欄上,選擇 File -> New -> Project。
- 從模闆中選擇 Visual C#,然後選擇 Windows。
- 選擇 Console Application。
- 為您的項目制定一個名稱,然後點選 OK 按鈕。
- 新項目會出現在解決方案資料總管(Solution Explorer)中。
- 在代碼編輯器(Code Editor)中編寫代碼。
- 點選 Run 按鈕或者按下 F5 鍵來運作程式。會出現一個指令提示符視窗(Command Prompt window),顯示 Hello World。
您也可以使用指令行代替 Visual Studio IDE 來編譯 C# 程式:
- 打開一個文本編輯器,添加上面提到的代碼。
- 儲存檔案為 helloworld.cs。
- 打開指令提示符工具,定位到檔案所儲存的目錄。
- 鍵入 csc helloworld.cs 并按下 enter 鍵來編譯代碼。
- 如果代碼沒有錯誤,指令提示符會進入下一行,并生成 helloworld.exe 可執行檔案。
- 接下來,鍵入 helloworld 來執行程式。
- 您将看到 "Hello World" 列印在螢幕上。
筆記:
若提示無法識别 csc 指令,需配置環境變量(Window10)
找到桌面上的“計算機”圖示,右鍵單擊,并在彈出的菜單中點選 “屬性” --"進階系統設定"--"環境變量"--"系統變量",找到變量 Path, 添加一個路徑 ;C:\Windows\Microsoft.NET\Framework\v2.0.50727\(注意,多個路徑使用分号(;)隔開,Windows其他版本追加在後面即可)。