第一章 C#的开发环境
C#最简间编辑器可以用Notepad,但我并不建议用它编辑源码。原因是如果你与真正的编程语言打交道,使用Notepad编辑源码编译时可能产生大量的错误信息行,但你还不知是在哪呢。
你有几种选择:
第一,配置Visual Studio 6中的Visual C++ 6.0,使它能够和C#源文件一起工作。
第二,选择Microsoft最新的Visual Studio 7,其IDE风格非常的COOL哦,居然还有VFP,C++、VB、C#在同一环境中,但是很耗资源,所以使用它要考虑清楚哦。
下面我就介绍一下Visual Studio 7的安装吧:
操作系统的选择,最好是选择WIN2000中文版(英文版也可以,中国人当然用中文版了),安装后升级到SP1(ServicePack 1,中文版的要装中文版的Win2KSP1),然后请安装IE5.5。安装Q274294_W2K_SP2_x86_CN.EXE补丁,到目前为止,基本的要求已经达到了。
开始安装VS.NET,把下载的文件解压或把购来的1、2号光盘复制到一个硬盘新目录中(大约需要850M空间),然后进入该目录后,运行SETUP文件。如果是安装在中文版的WIN2000则需要进入SETUP目录下,再运行里面的SETUP程序。
安装程序会提示你安装一些不符合版本的组件,主要包括Frontpage Server Extension QFE,IE5.5,请把指定存放升级组件的目录位置或是3号光盘。在升级后系统会安装如XML3等有关组件。
升级组件后,系统会开始安装VS.NET。时间约35分钟(时间根据你的机子配置)
以上安装过程中,必要时要重新启动你的计算机,上面提到的,大多都能到Microsoft的网站(http://www.microsoft.com)上下载。
其实,你只要安装好NGWS.NET SDK后,就可直接编译C#的程序。在NGWS SDK安装时,安装程序会自动替你在环境变量path中加入C#编译器所在的路径。因此你可以用任何编辑器编写一个C#程序,后缀名存为.cs,然后在命令行执行csc xxx.cs即可编译生成exe文件。
第三,你可以用任何第三方程序编辑器,最好要支持行数、色彩编码、工具集成和良好的搜索功能,本人推荐一个(Sharp Develop,一个专用于C#的开发工具)。
IDE界面如下:
现在就以"hello world"为例说说如何使用C#的开发环境吧
最简单的 "Hello World "程序 ,如下:
1: class HelloWorld
2: {
3: public static void Main()
4: {
5: System.Console.WriteLine("Hello World");
6: }
7: }
在C#中,代码块(语句组)由大括弧({和})所括住。所以,甚至你以前没有C++的经验,你也可以说出Main()方法就是HelloWorld 类语句的一部分,因为类被括在所定义的大括弧中。
C#应用程序的入口点就是 static Main方法,这个有点象是C/C++,但大小写不同,它必须包含在一个类中。仅有一个类能使用该标志定义,除非你告诉编译器它应使用哪一个 Main 方法,否侧,会产生一个编译错误。
和C++相比,Main的第一个字母是大写的M,而不是你曾经使用过的小写字母。在这个方法中,你的程序开始并结束。方法中可以调用其它方法――如这个例子中,用于输出文本――或者创建对象并激活该方法。
正如你所看到的,Main方法返回一个void类型。
public static void Main()
尽管看到这些语句时,C/C++程序员肯定会觉得似曾相识,但是其他程序员并不如此。首先,public 的访问标志告诉我们这个方法可以被任何程序访问,这是它被调用的必要条件。其次,static 意味着没有先创建类的实例也可以调用方法――你所要做的就是用类名调用方法。
HelloWorld.Main();
另一重要的方面是返回类型。对于方法Main,可选择void (意味着根本就没有返回值),或用int为整型结果(应用程序返回的错误级别)。因此,两种可能的Main方法为:
public static void Main()
public static int Main()
C/C++程序员会同样知道后面我要提到的――可以传给应用程序的命令行参数数组。如:
public static void Main(string[] args)
我现在并不想详细地说明如何访问参数,但我想事先给C++程序员一个警告:和C++相比,应用程序路径不是这个数组的一部分。仅仅那些参数包含在这个数组中。
在对Main方法并不简短的介绍之后,让我们把注意力集中到唯一真正的代码行――这行代码在屏幕上显示"Hello Wold"。
System.Console.WriteLine("Hello World");
假如不是由于有了System,大家会马上猜到WriteLine是Console 对象的一个静态方法。那么System代表什么呢? 它是包含Console对象的名字空间(范围),实际上并不是每次都在Console对象前加上名字空间的前缀,你可以象清单3.2所示范的那样,在应用程序中引入名字空间。
在应用程序中引入名字空间,代码如下:
1: using System;
2: class HelloWorld
3: {
4: public static void Main()
5: {
6: Console.WriteLine("Hello World");
7: }
8: }
所有你要做的就是给System名字空间加一个using(有点象是Delphi中的uses)指令。在这之后,不再需要规定名字空间,就可以使用它们的方法和属性了。
编译应用程序
由于NGWS Runtime支持所有的编译器(VB、C++和C#),你不必买一个单独的开发工具用来把应用程序编译成IL(中间语言)。但是,如果你从没有用过命令行编译器编译过应用程序(仅懂得编译名,而没有熟记), 它还是你的首要选择。
打开命令提示符并切换到存 helloworld.cs 的目录。敲入以下命令:csc helloworld.cs
helloworld.cs 被编译并链接成hellworld.exe(C#编译器如果没有出错提示)
使用命令行编译器 csc.exe 编译应用程序
现在你已经准备好运行第一个真正用C#编写的应用程序。简单地在命令行上敲入helloworld,输出结果为 "Hello World"。
在继续往下介绍之前, 我想稍为想象一下第一个应用程序和一个编译器开关的使用:csc /out:hello.exe helloworld.cs
这个开关告诉编译器输出文件命名为hello.exe。虽然这不是什么绝招,但它是这本书中用到的未来编译器的基本功。 小结
在这一章中,你完成了从0开始到创建、编译并执行了第一个C#应用程序。学习就是这样,从无到有,不然,自己知道,还要再学,有啥意义呢!