在文本編輯器中輸入下面的代碼,把它保存為後綴名為.cs的文件(如First.cs)。Main()方法如下所示:
using System; namespace Wrox { public class MyFirstClass { static void Main() { Console.WriteLine("Hello from Wrox."); } } }
編譯並運行程序
對源文件與性C#命令行編譯器(csc.exe),編譯這個程序:
csc First.cs
如果使用csc命令在命令行上編譯代碼,就應該注意.NET命令行工具(包括csc)只有在設置了某些環境變量後才能使用。如果沒有設置環境變量,有兩種解決方法。第1種方法是在運行csc之前,從命令提示符窗口上運行批處理文件%Microsoft Visual Studio 2013%\Common7\Tools\vsvars32.bat。其中%Microsoft Visual Studio 2013%是Visual Studio 2013的安裝文件夾。第2種方法是使用Visual Studio 2013命令提示符代替通常的命令提示符窗口。Visual Studio 2013命令提示符在菜單"開始"|"程序"|Microsoft Visual Studio 2013|Visual Studio Tools子菜單下。它只是一個命令提示符窗口,打開時會自動運行vsvars32.bat。
編譯代碼,會生成一個可執行文件First.exe。在命令行或Windows Explorer上,像運行任何可執行文件那樣運行該文件,得到如下結果:
First.exe
詳細介紹
在C#中,大多數語句的都以分號(;)結尾,語句可以寫在多個代碼行上,不需要使用續行字符。用花括號({})把語句組合為塊。單行注釋以雙協槓字符開頭(//),多行注釋以一條斜槓和一個星號(/*)開頭,以一個星號和一條斜槓(*/)結尾。C#區分大小寫,也就是說,變量myVar與MyVar是兩個不同的變量。
在上面的代碼示例中,前幾行代碼與名稱空間有關,名稱空間是把相關類組合在一起的方式。namespace關鍵字聲明了應與類相關的名稱空間。其後花括號中的所有代碼都被認為是在這個名稱空間中。編譯器在using語句指定的名稱空間中查找沒有在當前名稱空間中定義但在代碼中引用的類。
using System;
namespace Wrox
{
在First.cs文件中使用using指令的原因是後面要使用一個庫類System.Console。using System語句允許把這個類簡寫為Console。如果沒有using,就必須完全限定對Console.WriteLine()方法的調用,如下所示:
System.Console.WriteLine(“Hello from Wrox.”);
標准的System名稱空間包含了最常用的.NET類型。在C#中做的所有工作都依賴於.NET基類。在本例中,使用System名稱空間中的Console類,以寫入控制台窗口。C#沒有用於輸入和輸出的內置關鍵字,而是完全依賴於.NET類。
接著,聲明一個類MyFirstClass。但是因為該類位於Wrox名稱空間中,所以其完整的名稱是Wrox.MyFirstCSharpClass:
class MyFirstCSharpClass {
所有的C#代碼都必須包含在一個類中。類的聲明包括class關鍵字,其後是類名和一對花括號。與類相關的所有代碼都應放在這對花括號中。
下面聲明方法Main()。每個C#可執行文件(如控制台應用程序、Windows應用程序和Windows服務)都必須有一個入口點--Main()方法(注意M大寫):
public static void Main() {
在程序啟動時調用這個方法。該方法要麼沒有返回值(void),要麼返回一個整數(int)。注意,在C#中方法的定義如下所示:
[modifiers] return type MethodName ([parameters]) {}
第一個方括號中的內容表示可選關鍵字。修飾符(modifiers)用於指定用戶所定義的方法的某些特性,如可以在什麼地方調用該方法。在本例中,有兩個修飾符public和static。修飾符public表示可以在任何地方訪問該方法,所以可以在類的外部調用它。修飾符static表示方法不能在類的實例上執行,因此不必先實例化類再調用。這非常重要,因為我們創建的是一個可執行文件,而不是類庫。
在本例中,只調用了System.Console類的WriteLine()方法,把一行文本寫到控制台窗口上,WriteLine()是一個靜態方法,在調用之前不需要實例化Console對象。
Console.ReadLine()讀取用戶的輸入,添加這行代碼會讓應用程序等待用戶按回車鍵,之後退出應用程序。
然後調用return退出該方法(因為這是Main方法,所以也退出了程序)。