程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#基礎知識 >> Beginner with C# 1

Beginner with C# 1

編輯:C#基礎知識
* if you want to read the e edition, here is the link(http://msdn.microsoft.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(http://go3.163.com/~1landonsea/) or([email protected]). thank you!

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

c#將會是vs7的一分子。vs7還支持vb,vc和標記語言——vbscript和jscript。所有這些語言
都會在next generation windows services (nwgs) platform 中得到支持(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: }
/* 如果俺要出書的話,會考慮換個好點的例子。 ^&^

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

csc idontlikehelloworld.cs (加上一個回車鍵)

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

i dont like hello world

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

csc idontlikehelloworld.c (加上一個回車鍵)

最終效果是完全一樣的。好,現在分析語法:(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");

[1] [2] 下一頁

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#或者是其他任一種語言編寫的。  

上一頁  [1] [2] 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved