五、C# 編輯器 編寫C#程序可以在文本編輯器中進行,或者在集成開發環境Visual Studio中進行。市場上還有一些第三方編輯器,其中一些是免費的。更多信息請查看這里。 六、C#的程序結構 一個C#程序包含一個類,這個類中至少有一個公用的靜態方法Main,這個方法對程序進行初始化并終止程序。在Main方法中創建子對象、執行方法并實現軟件的邏輯處理。下面是一個典型的微型C#例程: using System; class MyFirstApp { static int Main(String[] args) { System.Console.WriteLine ("Hello .NET"); return 1; } } 在C#中,要使用下面的聲明來引入外部定義,而不是用象C++中的#include: using System; using System.Data; 然后,使用C#編譯器csc.exe編譯代碼。假定將前面的代碼保存為文件hello.cs,使用以下命令: csc hello.cs 結果就生成了hello.exe,它向控制臺輸出窗口寫入信息 "Hello .NET"。 盡管編譯后的結果文件包含.exe后綴,但hello.exe卻不是一個真正的、明確的CPU代碼段。實際上,它包含了.NET字節代碼。當啟動hello.exe時,CLR 將提取編譯器寫入代碼中的重要元數據。接著,一個叫做 Just-In-Time 編譯器的模塊將代碼映射到特定的 CPU中,開始實際的執行過程。 七、C# 和名稱空間 實際中的 C#程序通常包含多個文件,其中每個文件都可以包含一個或多個名稱空間。一個名稱空間就是一個名字,它向編譯器描繪出一些軟件實體,如類、界面、枚舉以及嵌入的名稱空間。名稱空間和數據類型一樣必須有唯一的名稱。在一個C#程序中,可以通過一個元素的完整資格名稱來識別它,這個資格名稱表明出層次關系。例如,System.String是 .NET String類型完整的資格名稱。但是為了簡化代碼起見,只要聲明正在使用System名稱空間: using System; 就可以使用一個相對名稱如String來作為完整名稱的同義詞,而最后依然代表 System.String。 通過使用namesapce關鍵字,我們還可以將C#程序或者類包裹在自身的名稱空間中,比如: namespace MyOwn { using System; // for String class MyFirstApp { static int Main(String[] args) { System.Console.WriteLine ("Hello .NET"); return 1; } } } 名稱空間 MyOwn 是全局名稱空間的一部分。調用它不需要再使用前綴,因為其完整資格名稱就是簡單的MyOwn。定義一個名稱空間是保持公共名稱唯一性的一個途徑。實際上,如果兩個類的名稱發生沖突,但只要它們分別屬于不同的名稱空間,兩個類仍然是各自唯一的。 八、C#中一個經典例程的編寫與編譯 1、編寫代碼 “Hello World”幾乎是學習任何一門編程語言都要涉及的第一個例程。下面也讓我們用C#完成這個工作。在上面提到的任意一個C#編輯器中(比如寫字板),鍵入以下代碼: using System;class MyClass { static void Main() { Console.WriteLine("Hello World!"); }} 然后保存為文件myclass.cs。 2、編譯程序 注意:C#編譯器要要求至少一個自變量,比如文件名。假設你的C# 文件名是myclass.cs,現在用命令行程序csc.exe來編譯上面的myclass.cs文件: csc myclass.cs 于是,C# 編譯器在工程文件的bin 目錄下生成了一個myclass.exe文件。運行這個 exe,看輸出是什么。 3、代碼含義 下面我們逐行看看這些代碼的含義: 程序的第一行是using System。為什么要using System呢?因為System是存儲系統類的名稱空間,程序中用來在控制臺上顯示輸出的Console(控制臺)類就是在System 名稱空間中定義的。 下一行是class MyClass。C# 中的class關鍵字用于創建一個新類。 每個類都有一個靜態的void Main() 函數,這個函數就是一個 C# 程序的入口。 Console 類的WriteLine方法負責向控制臺輸出文本信息。
|