C#基礎談(三)—- 從”Hello World”說起

來源:互聯網
上載者:User

    接著上一講,我們建立了一個名為"CSharpBasic"的控制台工程,首先看一下VS中的代碼編輯地區,預設開啟的是Program.cs這個檔案,VS為我們自動添加的代碼如下(由於我是用VS2008建立的,所以引入的命名空間與VS2005有所不同):

using System;<br />using System.Collections.Generic;<br />using System.Linq;<br />using System.Text;<br />// 以上為引入的命名空間<br />namespace CSharpBasic//本程式的命名空間<br />{<br /> class Program//類名<br /> {<br /> static void Main(string[] args)//程式的進入點Main函數<br /> {</p><p> }<br /> }<br />}<br />

下面我們來講解一下這個最基本的程式碼。

 

1、using語句:在這個檔案的最上部,看到有4行以using打頭的代碼,它們代表的意義為引入”using“後面的命名空間,那麼什麼是命名空間呢。首先來看看MSDN中的解釋:

命名空間是一種組織 C#
程式中出現的不同類型的方式。命名空間在概念上與電腦檔案系統中的檔案夾有些類似。與檔案夾一樣,命名空間可使類具有唯一的完全限定名稱。一個 C#
程式包含一個或多個命名空間,每個命名空間或者由程式員定義,或者作為之前編寫的類庫的一部分定義。

什麼意思呢?我們用比較通俗的話來解釋一下吧,比如 一個屋裡有兩個人,名字分別是”李明“和”張明“,那如果我們直叫”明“,他們倆就不知道我們叫的是誰,這是我們就要叫全名,比如”李明“,這樣,李明就能知道我們叫的是他,名”明“就好比C#的類,姓”李“和”張“就好比是不同的命名空間,當只有一個叫做”明“的人的時候,我們可以只叫”明“即可,但如果同時存在好幾個”明“的時候,我們就要叫他們的全名了。可能有人會說了,那如果有好幾個人都叫”李明“咋辦?同樣的道理,這時候,”李明“就是一個類,我們就要在這個類之前再加一個命名空間,比如”三年二班的”李明,“四年一班”的李明,等等……如果還在一個班裡,那就再加上其它的命名空間,如:坐第幾排第幾列的,等等……直到它們的全名唯一為止。叫全名肯定是比較妥當的了,但要每一個都寫全名,那會相當複雜和麻煩的,所以,using 語句就幫了我們一個大忙,可以把要用到的命名空間名稱寫到using後面,那麼在這個cs檔案中,要使用到這個命名空間下面的類時,直接輸入類名即可,而不用寫全名了,當然,如果碰到引入的命名空間下有類名重複的情況的時候,在用這些類時,還要把它們的全名都寫上,不然,編譯器無法知道你調用的是哪個類。.net類庫中已經預先定義了一部分命名空間了,如這個例子的頭四行,就是.net類庫預定義的命名空間。也就是說,我們可以在這個檔案裡直接寫System,System.Collections.Generic,System.Linq,System.Text這四個命名空間下的類,而不用再寫命名空間的名稱了。那麼,using是否只能寫在cs檔案的最頂頭呢?我們來試試把它們移動一下位置,把它們移到最下面:

namespace CSharpBasic//本程式的命名空間<br />{<br /> class Program//類名<br /> {<br /> static void Main(string[] args)//程式的進入點Main函數<br /> {</p><p> }<br /> }<br />}<br />using System;<br />using System.Collections.Generic;<br />using System.Linq;<br />using System.Text;<br />// 以上為引入的命名空間<br />

運行程式,看到編譯失敗,提示錯誤:  using 子句必須位於命名空間中定義的所有其他元素之前(外部別名聲明除外)

看來是不行哦,我們還是老老實實地寫在namespace之前吧~~

 

2、本程式的命名空間:知道了命名空間的作用之後再來看看namespace CSharpBasic這句代碼,這句話的意思是為下面的類Program定義一個命名空間,名稱為CSharpBasic,這個是VS根據我們的工程名為我們自動建立的,我們當然可以將其改為我們自己喜歡的名字,一般都是以本公司的名稱或工程的類型來命名的,這裡我起名為ojlovecd。

 

3、類名稱:啥是類?先來看看MSDN對類的定義:類是 C#
中功能最為強大的資料類型。像結構一樣,類也定義了資料類型的資料和行為。然後,程式員可以建立作為此類的執行個體的對象。與結構不同,類支援繼承,而繼承是物件導向編程的基礎部分。

 

去除定狀補,就變成了“類是資料類型”,那什麼是資料類型?再來看看MSDN對資料類型的定義:

 

資料類型概述

類型可描述為:

  • 內建數實值型別(如 int 或 char),或

  • 使用者定義型別(如 class 或 interface)。

  • 匿名型別,它由一組封裝在無名稱參考型別中的公用屬性群組成。

  • 類型還可以定義為:

  • 實值型別(C#
    參考)(用於儲存值)。這些類型包括基元數實值型別、枚舉和結構,還包括這幾種類型的可以為 null 的版本。

  • 參考型別(C#
    參考)(用於儲存對實際資料的引用)。這些類型包括類、介面、數組和委託。

C# 是強型別語言;因此每個變數和對象都必須具有宣告類型。啥意思呢?也就是說,在C#裡面,你使用的任何變數或對象,都必須是某一個資料類型,不存在沒有資料類型的變數或對象。這就好比這世界上某一個新生命的誕生,它肯定是屬於某一個物種的。類型包括.net類庫內建的數實值型別,使用者自訂類型和匿名型別(匿名型別為C#3.0新增的特性),我們這裡的類,就屬於使用者自訂類型,關於類的詳細介紹,我們將在以後進行。跟命名空間一樣,類名也是我們可以自由更改的,它可以和命名空間的名稱起同一個,我們這裡把Program也改成ojlovecd。

 

4、程式進入點Main方法:“函數”一詞在C#裡已經改名為了“方法”,Main方法是C#程式的進入點。運行程式的時候,系統將會調用Main方法來啟動我們的應用程式,那麼,Main方法能否改名呢?我們來試試,把Main方法也改成ojlovecd試試:

using System;<br />using System.Collections.Generic;<br />using System.Linq;<br />using Text = System.Text;<br />// 以上為引入的命名空間<br />namespace ojlovecd//本程式的命名空間<br />{<br /> class ojlovecd//類名<br /> {<br /> static void ojlovecd(string[] args)//程式的進入點Main函數<br /> {</p><p> }<br /> }<br />}<br />

運行代碼,程式出錯,錯誤為: “ojlovecd”: 成員名稱不能與它們的封閉類型相同   
看錯誤資訊,是告訴我們成員的名稱不能與類名相同,那我們再改個別的名稱看看,比如說改成CSDN:

using System;<br />using System.Collections.Generic;<br />using System.Linq;<br />using Text = System.Text;<br />// 以上為引入的命名空間<br />namespace ojlovecd//本程式的命名空間<br />{<br /> class ojlovecd//類名<br /> {<br /> static void CSDN(string[] args)//程式的進入點Main函數<br /> {</p><p> }<br /> }<br />}<br />

再次運行,還是出錯,錯誤為: 程式“C:/Documents and Settings/區健/My Documents/Visual Studio 2008/Projects/CSharpBasic/CSharpBasic/obj/Debug/CSharpBasic.exe”不包含適合於進入點的靜態“Main”方法  
看來是不行的,也就是說程式不僅必須包括Main方法,而且Main方法還必須是靜態。那什麼是靜態?就是關鍵字static所修飾的成員,有什麼作用呢?我們以後再講。

把CSDN改回Main,我們在Main方法體(就是用話括弧{}包含的那部分)中,輸入如下代碼:

using System;<br />using System.Collections.Generic;<br />using System.Linq;<br />using Text = System.Text;<br />// 以上為引入的命名空間<br />namespace ojlovecd//本程式的命名空間<br />{<br /> class ojlovecd//類名<br /> {<br /> static void Main(string[] args)//程式的進入點Main方法<br /> {<br /> Console.WriteLine("Hello ojlovecd");<br /> }<br /> }<br />}<br />

按下Ctrl+F5,就可以產生我們的第一個應用程式了,如:

至此,我們的第一個應用程式建立並運行成功了,在下一講中,我們將會講解關於這個程式的更多有用資訊。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.