<TABLE cellSpacing=0 cellPadding=0 width="98%" align=center border=0 hspace="0" vspace="0">9 g' Q+ l, ^* q8 j2 X1 r: D
4 n& ^7 i% x9 R
<TR>. |3 g; \2 j& G4 Y
<TD> 7 |$ X% c$ _& j2 x/ B# r% z; ~<TABLE cellSpacing=5 cellPadding=5 width="100%" bgColor=#ffffff border=0> 3 E( n# t. j9 P8 d4 T+ p: i8 l; W4 ~: i; L. R
<TR># d0 M* ^+ j' a8 M! {2 U
<TD class=content>/* 1 绪论 & K1 Z6 U5 T* F. a U# W6 M, Ic# 是一种简练,时髦(?),面向对象(object oriented),类型可靠(type-safe)的 ) T& t9 C Q7 v+ m; Z% a' `+ R编程语言。它(发音:C sharp)是从c/c++发展而来的(?俺觉得更象是java),和c/c++ 8 w8 B- z' n5 g6 \$ e/ E
是一个语系。所以,很容易被c/c++的程序员接受。c#的目标是结合Visual Basic的高产和 ( Y: o: M9 W: o9 x2 J& U# a2 U- {( C
C++质朴的力量。 9 P) A$ U2 p1 u- E- w0 J! G7 w, U* B; U# {
c#将会是vs7的一分子。vs7还支持vb,vc和标记语言——VBScript和JScript。所有这些语言 e9 E2 H6 B+ e- |7 [5 u( Y9 D+ e
都会在Next Generation Windows Services (NWGS) platform 中得到支持(c#就需要一个 , G5 e8 R) }. r Y/ i! JNWGS SDK包,可以在m$的网站上下载)。有了这个东东(NWGS),c#就不需要自己的类库, ( ? F$ E; d4 @ i3 i9 O' w+ q
而使用vc或vb这样一些成熟的库。c#也确实没有自己的类库。 # T8 s8 I3 L5 ]' V% v2 M废话完了。 1 v$ h8 `: O z9 ^) e1 N# I
1 M% q! I7 E" D1 J1。1 一个老土的例子(就不能换换吗?)*/ ! r& K- U8 M0 h, I# z( I0 y/* idontlikeHelloworld.cs : such a out sample */ 7 p: v% R- }, k) v) L1: using System; & w. @5 S5 l1 D. _4 f: `
2: class idontlikeHelloworld 6 N/ V( ^0 Z( u& r x
3: { 6 L( w- t" x0 t
4: static void Main() { 8 H& O% F; W5 q, y& z5: Console.WriteLine("i dont like Hello world"); / F; ?) C& m8 w& v$ y' ~
6: Console.ReadLine(); ! ^) ?& V0 J) A8 \) m1 { A7: } $ j! @9 S$ Z, `4 K, @0 e0 d0 d5 w
8: } - |4 Y3 w) S% s. F9 f& [& E3 K
/* 如果俺要出书的话,会考虑换个好点的例子。 ^&^ & p% U6 z1 \9 \+ W' |( e8 d- d) v8 q: M+ w- m7 {+ ~; U3 i
先说说怎样运行。首先,你需要windows2000!(是的,就是它,请各位不要随地丢果皮—— + s/ W0 y6 y+ w整个香蕉丢给俺就可以了。)然后,需要NWGS SDK!(82.4mb,不算很大噢。嘿嘿,好在 4 I+ m- {) o+ ~& J; Y
它没有自己的类库。)安装后,在你的程序所在的目录下键入: 2 P/ ]8 c' O* B7 p9 s
' J, v6 t: E V+ f9 }
csc idontlikeHelloworld.cs (加上一个回车键) ( h5 u3 ]. t9 [) m3 d4 W! i* A: h! V# a% c6 a) ~8 x
是不是有点复古的味道?这个操作会在和你的*.cs相同目录下产生一个 7 T3 s# L+ F; ~, [/ B
idontlikeHelloworld.exe文件。双击它,距可以看见: j5 p% i. t6 k3 _. D* S# R2 a3 R0 }
i dont like Hello world & e0 D' n2 I' Q: S9 |' M# b
L4 c6 Z1 N; p. _& d
回车就可以结束它,非常简单。不过,也可以这样:把它存成后缀为.c的文件更好 2 u R Z5 }. N" w/ m0 ]+ X
(即:idontlikeHelloworld.c)。这样就可以用vc的IDE进行打字,编辑。vc的 " L x2 z$ k+ H* h" e8 O: j; vtxt editor是最棒的噢(又要vc,NO!!!)。然后: & ]# h# v/ R ]5 Y4 B6 ]6 p
2 T) s0 ~% W Fcsc idontlikeHelloworld.c (加上一个回车键) 3 l( R+ T$ q9 A/ }- h- s
) A/ f6 j# f8 b7 n
最终效果是完全一样的。好,现在分析语法:(c#在语法上完全没有新意 :-| ) # A1 K$ f$ k% n! D3 b4 ^- k& Z* [ % m3 ^+ _, M O) x1: using System; ; |7 O" h) P7 f& B0 n: _9 M
# d8 I$ z6 {3 s( e$ P
using 其实是c++的关键字,在c#中的含义也相仿(就是说俺还不敢100%肯定,抱歉)。using & s) j! K: ^. @3 I# H. v
用在另一个关键字namespace之后。还是先看看namespace。 1 v) T$ X3 t& W) V! Y& D- u# j( e
语法(syntax):(from MSDN) . d0 m! V/ p- _0 r1 R9 ~' I' x7 C: z
namespace [identifier] { namespace-body } ( M( ]0 Y) k% f! M+ F! ?% W! b 4 ?2 _3 z, g4 d O) g俺的理解: , C$ u1 H3 ~6 q; c" o6 f! w- widentifier:在这里就是System(请记住:c#和c/c++一样,是区分大小写的!)。System * M+ O/ s! W$ y8 {2 Y
必须在使用它的范围内是唯一的。即,不能够有第二个System,但可以有system。 $ O, H8 h- ~" d0 k6 d 而“它的范围”,俺不想详细解说,只有在实践中才可能掌握。而且,初学者根本 0 r; |3 p2 b6 L/ c
不必知道!俺也是近来才知道还有个namespace和using。 :) " u$ {2 K; ^$ k3 h7 P4 W: b: H0 p2 e2 x0 G! P, v" A/ }: p5 x, C7 p
在{ namespace-body }中的是真正有用的东东,包括第五行的“Console.WriteLine”的声明和 W8 Z( O# j; N1 Y: R; o
定义(后面还会提到)。System是由NWGS定义的,咱们只需用(using)它即可。至于System在 9 ^' U+ W1 I: K' f) o' x5 O4 Q, a
什么文件里定义,咱就不用管了!交给编译器(就是刚才那个“csc.exe”)去寻找。这就代替 4 w1 p1 H1 ` v" P8 ^& b' s/ P! ^6 g
了c/c++中的“#include”,可以说是近了一步,避免大量烦人的细节。如果你没学过c/c++, * t4 r- p& S+ V- O8 @! ]) _就不用理会。namespace 在后面还会谈到。 8 L6 W1 n4 i# ]0 ` ) E/ I$ V$ p* d4 @2: class idontlikeHelloworld & D' n' ]8 S' \' t/ H5 j. Y+ p
) S& I! p- O# n; Z5 x" T7 e# V `6 D
class:是c语系中另一个关键字“类”。表示一系列的特性(官方说法:属性)和行为方法,有 3 H. s5 i# e' G8 z
了它你的程序就可以“另类”,创造与别不同的有你特色的东东噢!在这里,俺就定义了 ( Y& T: \6 X7 v: C2 Q“idontlikeHelloworld”。注意:这也是c#强制的,对于每一个可执行的程序都必须有。你想干 - G7 [8 X( E8 R" [9 r. J的事就可以记录在紧跟着你定义的class后面的一对花括号。注意:“{”和“}”一一对应的, - L' K% N6 h+ }/ H# p! }5 B- h“(”和“)”同样。 2 |6 I; n/ q4 q' P j
' [( C4 x! D- c; U& ]: d
4: static void Main() { 6 v% F! Y7 l( K6 O o) D
2 L. z7 q) M) l$ g7 M% |0 wMain()是本例子第一个动作(行为方法),干的第一件事。它是属于俺定义的idontlikeHelloworld ' E% Z! I1 w G. G/ ?/ I6 ]/ P0 w
类的方法。并且是c#强制的,是程序的真正开始!在紧跟在它后面的“{}”中的语句顺序,就是程序 7 y4 F' v- p* L' e. s5 L$ d的运行顺序!本例中只有一行(第六行干嘛用?你可以去掉再编译一次看看),输出一句话。 . U4 o. `' A1 l B) D! Q/ k) R( A" v: L0 m
5: Console.WriteLine("i dont like Hello world"); " F& W8 H( W0 \1 H4 _9 r9 }6 D# k
0 k; a( z, ]0 P" O g( S& A, q V非常奇怪,Console(再次提醒:注意大小写)不是俺定义的,从何而来?它其实是属于System ' X) F/ P {+ |5 D4 R
namespace 的一个class。WriteLine()是Console类中的一个方法,用来显示一句话(字符串)。 ) ]3 i/ M1 T/ c! }5 d) h/ U这里只是用了这个方法的1/18!并且是最简单之一!其他的有机会再说。你也可以用 7 Q/ B* T, W! ?. {# L
“Console.WriteLine”在“NGWS SDK Documentaion”中搜索“Console.WriteLine”,记住复选 7 ~0 H3 N9 M0 [% z
“仅搜索标题”,它会列出19项。好啦,完了!其实,还有“.”没说呢!呵呵...lei si la!!!! % g0 \1 C$ v( j