明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

Visual C#編程基礎(chǔ)之Hello World

[摘要]C#(發(fā)音為“See Sharp”)是簡(jiǎn)單、現(xiàn)代、面向?qū)ο蠛皖愋桶踩木幊陶Z(yǔ)言。C#起源于C語(yǔ)言家族,因此,C,C++和Java的程序員很快就能熟悉它。C#已經(jīng)獲得了ECMA International和ISO/IEC的國(guó)際標(biāo)準(zhǔn)認(rèn)證,它們分別是ECMA-334標(biāo)準(zhǔn)和ISO/IEC 23270標(biāo)準(zhǔn)。...
C#(發(fā)音為“See Sharp”)是簡(jiǎn)單、現(xiàn)代、面向?qū)ο蠛皖愋桶踩木幊陶Z(yǔ)言。C#起源于C語(yǔ)言家族,因此,C,C++和Java的程序員很快就能熟悉它。C#已經(jīng)獲得了ECMA International和ISO/IEC的國(guó)際標(biāo)準(zhǔn)認(rèn)證,它們分別是ECMA-334標(biāo)準(zhǔn)和ISO/IEC 23270標(biāo)準(zhǔn)。Microsoft用于.NET框架的C#編譯器就是根據(jù)這兩個(gè)標(biāo)準(zhǔn)實(shí)現(xiàn)的。 
C#是面向?qū)ο蟮恼Z(yǔ)言,但C#進(jìn)一步支持面向組件(component-oriented)的編程,F(xiàn)代軟件設(shè)計(jì)越來(lái)越依賴于自包含(self-contained)和自描述(self-describing)功能包形式的軟件組件。這種組件的關(guān)鍵之處在于它們提供了帶有屬性、方法和事件的編程模型;它們還具有提供關(guān)于組件聲明信息的特性(attribute);同時(shí),它們編入了自己的文檔。C#提供語(yǔ)言構(gòu)件來(lái)直接支持這些概念,使得C#在創(chuàng)建和使用軟件構(gòu)件方面非常自然。 

  C#的一些特征支持創(chuàng)建健壯和持久的應(yīng)用程序:垃圾回收(garbage collection)特征可以自動(dòng)回收無(wú)用對(duì)象所占的內(nèi)存空間;異常處理(exceptionhandling)提供了一個(gè)結(jié)構(gòu)化和可擴(kuò)展的方式,用于錯(cuò)誤檢測(cè)和恢復(fù);語(yǔ)言的類型安全(type-safe)設(shè)計(jì)了防止引用非初始化變量、數(shù)組下標(biāo)越界,以及執(zhí)行未檢查的類型轉(zhuǎn)換等情形的發(fā)生。 

  C#具有統(tǒng)一類型系統(tǒng)。所有的C#類型,包括諸如int和double的基本數(shù)據(jù)類型,都繼承于單個(gè)根類型object。因此,所有類型都共享一組通用操作,并且,任何類型的值都能夠以一致的方式存儲(chǔ)、傳遞和操作。C#支持用戶自定義引用類型和值類型,既允許對(duì)象的動(dòng)態(tài)分配,也允許輕量結(jié)構(gòu)的內(nèi)聯(lián)存儲(chǔ)。 

  為了保證C#程序和類庫(kù)總能以兼容的方式升級(jí),在C#的設(shè)計(jì)中十分強(qiáng)調(diào)版本控制。許多程序語(yǔ)言不太重視這一點(diǎn),導(dǎo)致采用那些語(yǔ)言編寫(xiě)的程序常常因?yàn)槠渌蕾嚨念悗?kù)的更新而無(wú)法工作。C#的設(shè)計(jì)方面直接受到版本考慮的影響,包括分開(kāi)的virtual和override修飾符、方法重載的規(guī)則,以及支持對(duì)顯式接口成員的聲明。 

  本章的其他部分將描述C#語(yǔ)言的本質(zhì)特征。盡管后面的章節(jié)將更為詳細(xì),有時(shí)甚至是細(xì)致入微地描述這些規(guī)則和異常,但是本章力求對(duì)整個(gè)C#做一個(gè)簡(jiǎn)單明了的說(shuō)明。其意圖是向讀者提供對(duì)語(yǔ)言的入門(mén)介紹,以便于讀者上手編寫(xiě)程序和閱讀后面的章節(jié)。 

  1.1 Hello World 

  學(xué)習(xí)某種編程語(yǔ)言,通常采用“Hello,World”程序作為起步。下面是C#版的: 

using System; 
class Hello 

 static void Main(){ 
  Console.WriteLine("Hello,World"); 
 } 

  C#源程序文件一般用.cs作為擴(kuò)展名。假定“Hello,World”源程序文件被存為hello.cs,那么,使用下面的命令行就能通過(guò)Microsoft C#編譯器編譯這個(gè)程序: 

csc hello.cs 

  它將產(chǎn)生一個(gè)名為hello.exe的可執(zhí)行程序集。當(dāng)程序運(yùn)行時(shí),輸出結(jié)果如下: 

Hello,World 

  “Hello,World”程序開(kāi)頭是using指令,引用了System命名空間(namespace)。命名空間提供了C#程序和類庫(kù)分層次的組織手段。命名空間包含類型和其他命名空間,例如,System命名空間包含若干類型(如程序中引用的Console類),以及若干其他命名空間(如IO和Collections)。如果通過(guò)using指令引用給定命名空間,就可以對(duì)命名空間的成員進(jìn)行非限定的使用。正是由于程序中使用了using指令,才能夠?qū)ystem.Console.WriteLine簡(jiǎn)寫(xiě)為Console.WriteLine。 

  “Hello,World”程序中聲明的Hello類只有一個(gè)成員,即名為Main的方法。Main方法是用static修飾符聲明的。靜態(tài)方法不同于實(shí)例方法,后者需要使用關(guān)鍵字this來(lái)引用特定的對(duì)象實(shí)例,而靜態(tài)方法的操作不需要引用特定的對(duì)象。作為約定,被命名為Main的靜態(tài)方法充當(dāng)程序的入口點(diǎn)。 

  程序輸出是由System命名空間下Console類的WriteLine方法產(chǎn)生的。這個(gè)類是由.NET框架類庫(kù)提供的,默認(rèn)情況下,類庫(kù)被Microsoft C#編譯器自動(dòng)引用。注意C#本身沒(méi)有單獨(dú)的運(yùn)行時(shí)類庫(kù)。事實(shí)上,.NET框架是C#的運(yùn)行時(shí)類庫(kù)。