Beginner with C# (轉)

worldblog發表於2007-12-02
Beginner with C# (轉)[@more@]

/* if you want to read the E edition, here is the link(.com/vstudio/nextgen/technology/clangref.doc">).


i translated it with my own opinion, add something and cut something to make it more easy to understand for beginner. If you have anything want me know, please try this() or(to:kamphkb@yeah">kamphkb@yeah.net). Thank you!


  1 緒論
是一種簡練,時髦(?),面向( oriented),型別可靠(type-safe)的
語言。它(發音:)是從c/c++發展而來的(?俺覺得更象是),和c/c++
是一個語系。所以,很容易被c/c++的員接受。c#的目標是結合的高產和
C++質樸的力量。

c#將會是vs7的一分子。vs7還支援vb,vc和標記語言——和。所有這些語言
都會在Next Generation Services (NWGS) platfo中得到支援(c#就需要一個
NWGS SDK包,可以在m$的網站上)。有了這個東東(NWGS),c#就不需要自己的類庫,
而使用vc或vb這樣一些成熟的庫。c#也確實沒有自己的類庫。
廢話完了。

1。1 一個老土的例子(就不能換換嗎?)*/
/* idontlikeHelloworld.cs : such a out sample :( */
1: using System;
2: class idontlikeHelloworld
3: {
4: static void Main() {
5: Console.WriteLine("i dont like Hello world");
6: Console.ReadLine();
7: }
8: }
/* 如果俺要出書的話,會考慮換個好點的例子。 ^&^

先說說怎樣執行。首先,你需要!(是的,就是它,請各位不要隨地丟果皮——
整個香蕉丟給俺就可以了。)然後,需要NWGS SDK!(82.4mb,不算很大噢。嘿嘿,好在
它沒有自己的類庫。)後,在你的程式所在的目錄下鍵入:

csc idontlikeHelloworld.cs (加上一個Enter鍵)

是不是有點復古的味道?這個操作會在和你的*.cs相同目錄下產生一個
idontlikeHelloworld.exe。雙擊它,距可以看見:

i dont like Hello world

回車就可以結束它,非常簡單。不過,也可以這樣:把它存成字尾為.c的檔案更好
(即:idontlikeHelloworld.c)。這樣就可以用vc的進行打字,編輯。vc的
txt editor是最棒的噢(又要vc,NO!!!)。然後:

csc idontlikeHelloworld.c (加上一個Enter鍵)

最終效果是完全一樣的。好,現在分析語法:(c#在語法上完全沒有新意 :-| )

1: using System;

using 其實是c++的關鍵字,在c#中的含義也相仿(就是說俺還不敢100%肯定,抱歉)。using
用在另一個關鍵字namespace之後。還是先看看namespace。
語法(syntax):(from MSDN)

namespace [identifier] { namespace-body }

俺的理解:
identifier:在這裡就是System(請記住:c#和c/c++一樣,是區分大小寫的!)。System
  必須在使用它的範圍內是唯一的。即,不能夠有第二個System,但可以有system。
  而“它的範圍”,俺不想詳細解說,只有在實踐中才可能掌握。而且,初學者根本
  不必知道!俺也是近來才知道還有個namespace和using。 :)

在{ namespace-body }中的是真正有用的東東,包括第五行的“Console.WriteLine”的宣告和
定義(後面還會提到)。System是由NWGS定義的,我們們只需用(using)它即可。至於System在
什麼檔案裡定義,我們就不用管了!交給(就是剛才那個“csc.exe”)去尋找。這就代替
了c/c++中的“#include”,可以說是近了一步,避免大量煩人的細節。如果你沒學過c/c++,
就不用理會。namespace 在後面還會談到。

2: class idontlikeHelloworld

class:是c語系中另一個關鍵字“類”。表示一系列的特性(官方說法:屬性)和行為方法,有
了它你的程式就可以“另類”,創造與別不同的有你特色的東東噢!在這裡,俺就定義了
“idontlikeHelloworld”。注意:這也是c#強制的,對於每一個可的程式都必須有。你想幹
的事就可以記錄在緊跟著你定義的class後面的一對花括號。注意:“{”和“}”一一對應的,
“(”和“)”同樣。

4: static void Main() {

Main()是本例子第一個動作(行為方法),乾的第一件事。它是屬於俺定義的idontlikeHelloworld
類的方法。並且是c#強制的,是程式的真正開始!在緊跟在它後面的“{}”中的語句順序,就是程式
的執行順序!本例中只有一行(第六行幹嘛用?你可以去掉再編譯一次看看),輸出一句話。

5: Console.WriteLine("i dont like Hello world");

非常奇怪,Console(再次提醒:注意大小寫)不是俺定義的,從何而來?它其實是屬於System
namespace 的一個class。WriteLine()是Console類中的一個方法,用來顯示一句話(字串)。
這裡只是用了這個方法的1/18!並且是最簡單之一!其他的有機會再說。你也可以用
“Console.WriteLine”在“NGWS SDK Documentaion”中搜尋“Console.WriteLine”,記住複選
“僅搜尋標題”,它會列出19項。好啦,完了!其實,還有“.”沒說呢!呵呵...lei si la!!!!
(續前)
“.”被稱為分隔符(separator),用來連線名字,如上面的“Console.WriteLine”,就把類和它的
方法連線。透過這種方式,我們們就可以使用現成方法集合。這裡再回顧一下俺的例子,看看namespace和
“.”是如何連用的,還有為什麼要使用namespace這個關鍵字。把例子稍微改一下:*/
/* idontlikeHelloworld.cs */
1: //using System;
2: class idontlikeHelloworld
3: {
4: static void Main() {
5: System.Console.WriteLine("i dont like Hello world");
6: System.Console.ReadLine();
7: }
8: }

/* 看見了,當俺登出掉“using System;”後,在第五行和第六行加了“System”。程式的結果不會改
變。但是,很明顯的這樣比較羅嗦,所以引入了“namespace”。其實,class應該可以完成同樣的功能。
不過,設計者可能不想讓一個關鍵字涵蓋太多的功能。記得在c向c++發展的時候,引入了“class”,而
不是擴充套件“struct”關鍵字的功能;又比如“=”只用於賦值,“==”只用於判斷相等。這是c/c++和c#
在語法上其中一個重要的特點。這樣設計的好處很多。有機會再聊噢。
如果你沒學過c/c++,以下的內容可以跳過。c#與c/c++在語法上還是有區別的,比如:
1。c#根本沒有“::”;“->”只在程式中很小的片斷中。在c#中應採用“.”。
2。c#無須先宣告定義,再使用。與java相同。
3。c#取消了用“#include”匯入其他的程式文字檔案,而採用象徵性的控制程式碼引入他人的程式碼。這樣一來,
  就排除了程式語言間的障礙,方便地使用其它語言編寫的庫。如“Console”類可以是c#或者是其他任一種語言編寫的。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-987284/,如需轉載,請註明出處,否則將追究法律責任。