1 緒論 c# 是一種簡(jiǎn)練,時(shí)髦(?),面向?qū)ο螅╫bject oriented),類型可靠(type-safe)的 編程語(yǔ)言。它(發(fā)音:C sharp)是從c/c++發(fā)展而來(lái)的(?俺覺(jué)得更象是java),和c/c++ 是一個(gè)語(yǔ)系。所以,很容易被c/c++的程序員接受。c#的目標(biāo)是結(jié)合Visual Basic的高產(chǎn)和 C++質(zhì)樸的力量。
c#將會(huì)是vs7的一分子。vs7還支持vb,vc和標(biāo)記語(yǔ)言——VBScript和JScript。所有這些語(yǔ)言 都會(huì)在Next Generation Windows Services (NWGS) platform 中得到支持(c#就需要一個(gè) NWGS SDK包,可以在m$的網(wǎng)站上下載)。有了這個(gè)東東(NWGS),c#就不需要自己的類庫(kù), 而使用vc或vb這樣一些成熟的庫(kù)。c#也確實(shí)沒(méi)有自己的類庫(kù)。 廢話完了。
1。1 一個(gè)老土的例子(就不能換換嗎?)*/ /* 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: } /* 如果俺要出書(shū)的話,會(huì)考慮換個(gè)好點(diǎn)的例子。 ^&^
先說(shuō)說(shuō)怎樣運(yùn)行。首先,你需要windows2000!(是的,就是它,請(qǐng)各位不要隨地丟果皮—— 整個(gè)香蕉丟給俺就可以了。)然后,需要NWGS SDK!(82.4mb,不算很大噢。嘿嘿,好在 它沒(méi)有自己的類庫(kù)。)安裝后,在你的程序所在的目錄下鍵入:
csc idontlikeHelloworld.cs (加上一個(gè)回車鍵)
是不是有點(diǎn)復(fù)古的味道?這個(gè)操作會(huì)在和你的*.cs相同目錄下產(chǎn)生一個(gè) idontlikeHelloworld.exe文件。雙擊它,距可以看見(jiàn):
i dont like Hello world
回車就可以結(jié)束它,非常簡(jiǎn)單。不過(guò),也可以這樣:把它存成后綴為.c的文件更好 (即:idontlikeHelloworld.c)。這樣就可以用vc的IDE進(jìn)行打字,編輯。vc的 txt editor是最棒的噢(又要vc,NO!!!)。然后:
csc idontlikeHelloworld.c (加上一個(gè)回車鍵)
最終效果是完全一樣的。好,現(xiàn)在分析語(yǔ)法:(c#在語(yǔ)法上完全沒(méi)有新意 :-| )
1: using System;
using 其實(shí)是c++的關(guān)鍵字,在c#中的含義也相仿(就是說(shuō)俺還不敢100%肯定,抱歉)。using 用在另一個(gè)關(guān)鍵字namespace之后。還是先看看namespace。 語(yǔ)法(syntax):(from MSDN)
namespace [identifier] { namespace-body }
俺的理解: identifier:在這里就是System(請(qǐng)記住:c#和c/c++一樣,是區(qū)分大小寫(xiě)的!)。System 必須在使用它的范圍內(nèi)是唯一的。即,不能夠有第二個(gè)System,但可以有system。 而“它的范圍”,俺不想詳細(xì)解說(shuō),只有在實(shí)踐中才可能掌握。而且,初學(xué)者根本 不必知道!俺也是近來(lái)才知道還有個(gè)namespace和using。 :)
在{ namespace-body }中的是真正有用的東東,包括第五行的“Console.WriteLine”的聲明和 定義(后面還會(huì)提到)。System是由NWGS定義的,咱們只需用(using)它即可。至于System在 什么文件里定義,咱就不用管了!交給編譯器(就是剛才那個(gè)“csc.exe”)去尋找。這就代替 了c/c++中的“#include”,可以說(shuō)是近了一步,避免大量煩人的細(xì)節(jié)。如果你沒(méi)學(xué)過(guò)c/c++, 就不用理會(huì)。namespace 在后面還會(huì)談到。
2: class idontlikeHelloworld
class:是c語(yǔ)系中另一個(gè)關(guān)鍵字“類”。表示一系列的特性(官方說(shuō)法:屬性)和行為方法,有 了它你的程序就可以“另類”,創(chuàng)造與別不同的有你特色的東東噢!在這里,俺就定義了 “idontlikeHelloworld”。注意:這也是c#強(qiáng)制的,對(duì)于每一個(gè)可執(zhí)行的程序都必須有。你想干 的事就可以記錄在緊跟著你定義的class后面的一對(duì)花括號(hào)。注意:“{”和“}”一一對(duì)應(yīng)的, “(”和“)”同樣。
4: static void Main() {
Main()是本例子第一個(gè)動(dòng)作(行為方法),干的第一件事。它是屬于俺定義的idontlikeHelloworld 類的方法。并且是c#強(qiáng)制的,是程序的真正開(kāi)始!在緊跟在它后面的“{}”中的語(yǔ)句順序,就是程序 的運(yùn)行順序!本例中只有一行(第六行干嘛用?你可以去掉再編譯一次看看),輸出一句話。
5: Console.WriteLine("i dont like Hello world");
非常奇怪,Console(再次提醒:注意大小寫(xiě))不是俺定義的,從何而來(lái)?它其實(shí)是屬于System namespace 的一個(gè)class。WriteLine()是Console類中的一個(gè)方法,用來(lái)顯示一句話(字符串)。 這里只是用了這個(gè)方法的1/18!并且是最簡(jiǎn)單之一!其他的有機(jī)會(huì)再說(shuō)。你也可以用 “Console.WriteLine”在“NGWS SDK Documentaion”中搜索“Console.WriteLine”,記住復(fù)選 “僅搜索標(biāo)題”,它會(huì)列出19項(xiàng)。好啦,完了!其實(shí),還有“.”沒(méi)說(shuō)呢!呵呵...lei si la!!!! (續(xù)前) “.”被稱為分隔符(separator),用來(lái)連接名字,如上面的“Console.WriteLine”,就把類和它的 方法連接。通過(guò)這種方式,咱們就可以使用現(xiàn)成方法集合。這里再回顧一下俺的例子,看看namespace和 “.”是如何連用的,還有為什么要使用namespace這個(gè)關(guān)鍵字。把例子稍微改一下:*/ /* 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: }
/* 看見(jiàn)了,當(dāng)俺注銷掉“using System;”后,在第五行和第六行加了“System”。程序的結(jié)果不會(huì)改 變。但是,很明顯的這樣比較羅嗦,所以引入了“namespace”。其實(shí),class應(yīng)該可以完成同樣的功能。 不過(guò),設(shè)計(jì)者可能不想讓一個(gè)關(guān)鍵字涵蓋太多的功能。記得在c向c++發(fā)展的時(shí)候,引入了“class”,而 不是擴(kuò)展“struct”關(guān)鍵字的功能;又比如“=”只用于賦值,“==”只用于判斷相等。這是c/c++和c# 在語(yǔ)法上其中一個(gè)重要的特點(diǎn)。這樣設(shè)計(jì)的好處很多。有機(jī)會(huì)再聊噢。 如果你沒(méi)學(xué)過(guò)c/c++,以下的內(nèi)容可以跳過(guò)。c#與c/c++在語(yǔ)法上還是有區(qū)別的,比如: 1。c#根本沒(méi)有“::”;“->”只在程序中很小的片斷中。在c#中應(yīng)采用“.”。 2。c#無(wú)須先聲明定義,再使用。與java相同。 3。c#取消了用“#include”導(dǎo)入其他的程序文本文件,而采用象征性的句柄引入他人的代碼。這樣一來(lái), 就排除了編程語(yǔ)言間的障礙,方便地使用其它語(yǔ)言編寫(xiě)的庫(kù)。如“Console”類可以是c#或者是其
|
溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!