程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 初探c#(一)緒論

初探c#(一)緒論

編輯:C#入門知識

翻譯至《c# language reference》microsoft press!

/* 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 }中的是真正有用的東東,包括第五行的"nsole.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(再次提醒:注意大小寫)不是俺定義的,從何而來?它其實是屬於Systemnamespace 的一個class。WriteLine()是Console類中的一個方法,用來顯示一句話(字符串)。
  這裡只是用了這個方法的1/18!並且是最簡單之一!其他的有機會再說。你也可以用
“Console.WriteLine”在“NGWS SDK Documentaion”中搜索“Console.WriteLine”,記住復選“僅搜索標題”,它會列出19項。好啦,完了!其實,還有“.”沒說呢!呵呵...lei si la!!!!

語句不通順,俺會在以後改進(update),敬請原諒!--“請先用叉子喝湯”

“.”被稱為分隔符(separator),用來連接名字,如上面"Console.WriteLine",就把類和它的方法連接。通過這種方式,咱們就可以使用現成方法集合。這裡再回顧一下俺的例子,看看namespace和“.”是如何連用的,還有為什麼要使用namespace這個關鍵字。把例子稍微改一下:

/* idontlikeHelloworld.cs */
1: file://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#或者是其他任一種語言編寫的。

 


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