概述C# Hello World代碼
編輯器
盡管我是一個頑固的Notepad狂,但這次我不建議用它編輯源碼。原因是你正在與真正的編程語言打交道,使用Notepad編輯源碼編譯時可能產(chǎn)生大量的錯誤信息行(C++程序員知道我在說什么。)
你有幾種選擇??梢灾匦屡渲媚阈湃蔚睦鲜絍isual C++ 6.0,使它能夠和C#源文件一起工作。第二種選擇是使用新的Visual Studio 7.第三,你可以用任何第三方程序編輯器,***要支持行數(shù)、色彩編碼、工具集成和良好的搜索功能。CodeWright就是其中一個例子。當(dāng)然,在所提到的編輯器中,沒有一個對創(chuàng)建C#程序來說是必要的。用Notepad肯定可以編輯。但是,如果你考慮到要編寫更大的項目,***還是忍痛割愛吧。
C# Hello World代碼
討論編輯器有點離題 ,讓我們把話題轉(zhuǎn)回到一個非常出名的小應(yīng)用程序。這個最短的C#版本應(yīng)用程序見下面的代碼把它存起來,文件名為 helloworld.cs,以便使你能按照說明,完成諸如編譯應(yīng)用程序等其它余下來的步驟。
最簡單的C# Hello World代碼
- class HelloWorld{
- public static void Main(){
- System.Console.WriteLine("Hello World");
- }
- }
在C#中,代碼塊(語句組)由大括?。▄和})所括住。所以,甚至你以前沒有C++的經(jīng)驗,你也可以說出Main()方法就是HelloWorld 類語句的一部分,因為類被括在所定義的大括弧中。C#應(yīng)用程序(可執(zhí)行)的入口點就是 static Main 方法,它必須包含在一個類中。僅有一個類能使用該標(biāo)志定義,除非你告訴編譯器它應(yīng)使用哪一個 Main 方法(否側(cè),會產(chǎn)生一個編譯錯誤)。和C++相比,Main的***個字母是大寫的M,而不是你曾經(jīng)使用過的小寫字母。在這個方法中,你的程序開始并結(jié)束。方法中可以調(diào)用其它方法——如這個例子中,用于輸出文本——或者創(chuàng)建對象并激活該方法。
正如你所看到的,Main方法返回一個void類型。public static void Main()
盡管看到這些語句時,C++程序員肯定會覺得似曾相識,但是其他程序員并不如此。首先,public 的訪問標(biāo)志告訴我們這個方法可以被任何程序訪問,這是它被調(diào)用的必要條件。其次,static 意味著沒有先創(chuàng)建類的實例也可以調(diào)用方法——你所要做的就是用類名調(diào)用方法。HelloWorld.Main();但是,我不贊成在Main方法中執(zhí)行這行代碼,遞歸會導(dǎo)致堆棧溢出。
另一重要的方面是返回類型。對于方法Main,可選擇void (意味著根本就沒有返回值),或用int 為整型結(jié)果(應(yīng)用程序返回的錯誤級別)。因此,兩種可能的Main方法為:
- public static void Main()
- public static int Main()
C++程序員會同樣知道后面我要提到的——可以傳給應(yīng)用程序的命令行參數(shù)數(shù)組。如:
- public static void Main(string[] args)
我現(xiàn)在并不想詳細(xì)地說明如何訪問參數(shù),但我想事先給C++程序員一個警告:和C++相比,應(yīng)用程序路徑不是這個數(shù)組的一部分。僅僅那些參數(shù)包含在這個數(shù)組中。
在對Main方法并不簡短的介紹之后,讓我們把注意力集中到唯一真正的代碼行——這行代碼在屏幕上顯示"Hello Wold".System.Console.WriteLine(C# Hello World代碼);
假如不是由于有了System,大家會馬上猜到WriteLine是Console 對象的一個靜態(tài)方法。那么System代表什么呢?
它是包含Console對象的名字空間(范圍),實際上并不是每次都在Console對象前加上名字空間的前綴,你可以象下面代碼所示范的那樣,在應(yīng)用程序中引入名字空間。
在應(yīng)用程序中引入名字空間
- using System;
- class HelloWorld{
- public static void Main(){
- Console.WriteLine("Hello World");
- }
- }
所有你要做的就是給System名字空間加一個using指令。在這之后,不再需要規(guī)定名字空間,就可以使用它們的方法和屬性了。NGWS 框架體系中有很多的名字空間,我只對巨大的名字空間池中的少數(shù)幾個對象進行探討。但在第八章 "用C#寫組件"將介紹為你的對象創(chuàng)建自己的名字空間。
【編輯推薦】