第1讲配置.NET运行环境
这里不涉及界面及应用方面的知识,而是只关注C#语法本身,所以不需要安装Visual Studio 2003或者2005这样大型的程序,只要安装了.NET组件包就可以进行本课程的学习。那么我们如何知道自己的机器上是否已经安装了.NET组件包呢?
首先,打开控制面板,然后再打开添加删除程序,这时候我们可以发现在我的机器上安装了多个版本的.NET,一个是1.1一个是2.0,如图:
如果在你的机器上并没有发现这些带Microsoft.NET Framework 字样的程序,就说明你并没有安装.NET组件包,所以你要去微软的官方网站去下载并安装.NET组件包。
下面,我们来看一下.NET组件包的安装路径。由于系统的不同,路径也是不同的,xp/2000一般是C:/WIN/Microsoft.NET/Framework,Vista的路径一般是C:/Windows/Microsoft.NET/Framework/,大致还是一样的。我们可以发现这个目录下也会有多个版本的文件名,我们打开v1.1.4322这个文件,找到csc.exe这个文件。这个文件是个编译器,我们将来的课程中就是使用这个编译器来进行程序的编译。在v2.0.50727这个文件夹下呢,也可以找到同样的编译器。(我的机器上直接安装的2.0版本,所以1.1的没有,后面都用2.0的版本来开发)
回到v2.0.50727这个文件夹下,我们来检验下csc这个命令是否可用。点击开始->运行,敲入cmd这个命令进入命令提示符窗口,键入csc这个命令按回车,我们发现这个命令不可用,如图:
首先,打开控制面板,然后再打开添加删除程序,这时候我们可以发现在我的机器上安装了多个版本的.NET,一个是1.1一个是2.0,如图:
![](http://album.hi.csdn.net/App_Uploads/chopper7278/20080923/104235765.jpg?d=20080923104254687)
如果在你的机器上并没有发现这些带Microsoft.NET Framework 字样的程序,就说明你并没有安装.NET组件包,所以你要去微软的官方网站去下载并安装.NET组件包。
下面,我们来看一下.NET组件包的安装路径。由于系统的不同,路径也是不同的,xp/2000一般是C:/WIN/Microsoft.NET/Framework,Vista的路径一般是C:/Windows/Microsoft.NET/Framework/,大致还是一样的。我们可以发现这个目录下也会有多个版本的文件名,我们打开v1.1.4322这个文件,找到csc.exe这个文件。这个文件是个编译器,我们将来的课程中就是使用这个编译器来进行程序的编译。在v2.0.50727这个文件夹下呢,也可以找到同样的编译器。(我的机器上直接安装的2.0版本,所以1.1的没有,后面都用2.0的版本来开发)
回到v2.0.50727这个文件夹下,我们来检验下csc这个命令是否可用。点击开始->运行,敲入cmd这个命令进入命令提示符窗口,键入csc这个命令按回车,我们发现这个命令不可用,如图:
特别注明下:这里的csc命令主要是用来将C#源码编译成dll文件的
为什么呢?道理很简单,就是因为系统找不到csc.exe这个文件,所以不能执行它。有两种解决方法:
第一种先进入csc这个文件的目录下来执行他,我们来试一下,我们把目录的地址复制下来C:/Windows/Microsoft.NET/Framework/v2.0.50727(根据你自己机器上的路径而定)。有些机器上并不能全路径的地址,这个就需要自己去工具栏的文件夹选项里去设置了,这个就不多说了。地址复制好了,我们打开命令行提示符窗口,键入cd 然后把地址拷贝进去(利用鼠标的右键),按回车,这时呢我们就进入了2.0版本的文件夹下了,如图:
然后,键入csc命令按回车,这时我们发现csc命令已经可以使用了。如图:
虽然可以使用了,但是这样还是比较麻烦的,有没有更好更方便的方法呢?有!就是在系统变量里,加入这个路径,这样无论以后我们在任何目录下,可以很方便的去使用这个命令了。
下面我们来看一下第二种方法,在我的电脑上点右键,选择属性,切换到高级标题栏,我们看这里有个环境变量按钮。点击它,如图:
在这里面有2个变量,第一个是chopper的用户变量,另外一个是系统变量。用户变量表示当你以chopper(这是我的用户名,或者可以是Administrator)身份登录的时候,里面的变量才可用。系统变量呢是以任何的身份登录都可以使用里面的变量。我们在系统变量里找到Path这个变量,点击编辑。这时我们可以看到里面的变量值中有很多的路径,各个路径之间呢是用分号隔开的。如果我们要加入新的变量,可以在最后键入一个分号,然后把刚才的路径加进去(csc程序的路径C:/Windows/Microsoft.NET/Framework/v2.0.50727),如图:
把这路径加入到Path路径里。这就意味着当你要执行一个命令时,系统首先会在Path变量下去一一寻找里面的所有路径,从而找到你的命令去执行它。下面我们来看一下csc命令是否可用。必循重新启动命令行窗口,我们刚才所作的的设置才能生效,敲入csc命令,回车可以执行,如图:
用cd/进入到C盘根目录,或者是其他盘符下,都可以执行。这就意味着我们在任何的路径下,都可以去执行这个命令了。
下面可以开始我们的第一个程序了。按照国际惯例,学任何一种语言,都是从Hello World开始的,我们也来做一个Hello World。在任意路径下新建一个文件夹(比如D盘),给它起个名字C# Language Reference Demo(C#语言参考例程),以后我们所有的例子都放在里面。在里面新建一个文本文件,给它改个名字叫Hello.cs(如果你的机器上把后缀名给隐藏的话,有必要去工具栏的文件夹选项中,选择查看标签,把里面的[隐藏已知文件类型的扩展名]的勾去掉,必须以cs为后缀名)后缀名为cs表示这是一个c#文件。
打开文件(由于本人已经有Visual Studio的环境了,所以无须教程中的高亮显示的工具,大家可以自由选择,本人就用环境编写了),敲入如下代码:
![](http://album.hi.csdn.net/App_Uploads/chopper7278/20080923/111528718.jpg?d=20080923111625953)
为什么呢?道理很简单,就是因为系统找不到csc.exe这个文件,所以不能执行它。有两种解决方法:
第一种先进入csc这个文件的目录下来执行他,我们来试一下,我们把目录的地址复制下来C:/Windows/Microsoft.NET/Framework/v2.0.50727(根据你自己机器上的路径而定)。有些机器上并不能全路径的地址,这个就需要自己去工具栏的文件夹选项里去设置了,这个就不多说了。地址复制好了,我们打开命令行提示符窗口,键入cd 然后把地址拷贝进去(利用鼠标的右键),按回车,这时呢我们就进入了2.0版本的文件夹下了,如图:
![](http://album.hi.csdn.net/App_Uploads/chopper7278/20080923/114631343.jpg?d=20080923114644796)
然后,键入csc命令按回车,这时我们发现csc命令已经可以使用了。如图:
![](http://album.hi.csdn.net/App_Uploads/chopper7278/20080923/114913312.jpg?d=20080923114958375)
虽然可以使用了,但是这样还是比较麻烦的,有没有更好更方便的方法呢?有!就是在系统变量里,加入这个路径,这样无论以后我们在任何目录下,可以很方便的去使用这个命令了。
下面我们来看一下第二种方法,在我的电脑上点右键,选择属性,切换到高级标题栏,我们看这里有个环境变量按钮。点击它,如图:
![](http://album.hi.csdn.net/App_Uploads/chopper7278/20080923/125757109.jpg?d=20080923134103265)
在这里面有2个变量,第一个是chopper的用户变量,另外一个是系统变量。用户变量表示当你以chopper(这是我的用户名,或者可以是Administrator)身份登录的时候,里面的变量才可用。系统变量呢是以任何的身份登录都可以使用里面的变量。我们在系统变量里找到Path这个变量,点击编辑。这时我们可以看到里面的变量值中有很多的路径,各个路径之间呢是用分号隔开的。如果我们要加入新的变量,可以在最后键入一个分号,然后把刚才的路径加进去(csc程序的路径C:/Windows/Microsoft.NET/Framework/v2.0.50727),如图:
![](http://album.hi.csdn.net/App_Uploads/chopper7278/20080923/131358359.jpg?d=20080923134933437)
把这路径加入到Path路径里。这就意味着当你要执行一个命令时,系统首先会在Path变量下去一一寻找里面的所有路径,从而找到你的命令去执行它。下面我们来看一下csc命令是否可用。必循重新启动命令行窗口,我们刚才所作的的设置才能生效,敲入csc命令,回车可以执行,如图:
![](http://album.hi.csdn.net/App_Uploads/chopper7278/20080923/132030187.jpg?d=20080923135415984)
用cd/进入到C盘根目录,或者是其他盘符下,都可以执行。这就意味着我们在任何的路径下,都可以去执行这个命令了。
下面可以开始我们的第一个程序了。按照国际惯例,学任何一种语言,都是从Hello World开始的,我们也来做一个Hello World。在任意路径下新建一个文件夹(比如D盘),给它起个名字C# Language Reference Demo(C#语言参考例程),以后我们所有的例子都放在里面。在里面新建一个文本文件,给它改个名字叫Hello.cs(如果你的机器上把后缀名给隐藏的话,有必要去工具栏的文件夹选项中,选择查看标签,把里面的[隐藏已知文件类型的扩展名]的勾去掉,必须以cs为后缀名)后缀名为cs表示这是一个c#文件。
打开文件(由于本人已经有Visual Studio的环境了,所以无须教程中的高亮显示的工具,大家可以自由选择,本人就用环境编写了),敲入如下代码:
- using System;
- class Hello
- {
- static void Main()
- {
- Console.WriteLine("Hello World!");
- }
- }
using System;引入一个名字空间,在C#里面所有的事都要在类里面完成,所以我们要声明一个类,申明类需要关键字class,class后面跟的是类名,我们给它起个名字叫Hello,在类的后面跟了2个大括号,这代表着大括号之间的所有代码都属于这个类,在类里面输入代码static void Main,注意这个Main,M是大写的。在C#里面大小写是敏感的,也就是说如果你把这个M写成了小写的m,那么这个程序就无法编译。我们在类里面申明了一个函数,函数的名字叫Main。static表示他是一个静态的函数,void表示这个函数没有返回值。静态函数我们会到后面详细讲解的。Console.WriteLine("Hello World!");是个输出语句。
好,这个文件就算写完了,然后我们要对这个Hello文件进行编译。打开命令行窗口,输入cd,后面键入刚才所写文件的路径C:/C# Language Reference Demo,进入到我们所要执行文件的路径后,敲入csc Hello.cs进行编译。这时我们发现,程序已经编译完毕,并且生成一个可执行的文件Hello.exe,然后我们继续敲入Hello去执行那个exe文件,我们发现屏幕上输出了Hello World!的字符。如图:
好,现在我们的第一个程序就算完成了,接下来我们来讲解一下刚才我们所写的程序。
using System;
System这个名字指向一个包含了基本C#使用类集合的命名空间,这个命名空间包含了下面的Console类, WriteLine是Console类的一个函数,它的作用是在屏幕上输出指定的内容。在这个例子中,它输出了“Hello World!”这个字符串,我们注意到在代码的结尾处有分号,这个分号就表示一行代码的结束,这是C#语言的约定。
下面我们来看一下什么叫名字空间。
PPT:.NET Framework类库由命名空间组成。每个命名空间都包含可在程序中使用的类型:类,结构,枚举,委托和接口。
我们可以这样理解命名空间,命名空间包含了一组功能或者类型相近的类,当我们使用using,命令语句去调用这个命名空间以后,就可以在程序中使用这些类。
PPT:大多数C#应用程序从一个using指定节开始。该节列出应用程序将会频繁使用的命名空间,避免程序员在每次使用其中包含的方法时都要指定完全限定的名称。
这意味着什么呢?这意味着我们可以用另外一种方法来使用命名空间,好,切换到到代码,我们把引用命名空间的代码删除掉,然后直接在Console前面加上命名空间的前缀然后保存,代码如下:
好,这个文件就算写完了,然后我们要对这个Hello文件进行编译。打开命令行窗口,输入cd,后面键入刚才所写文件的路径C:/C# Language Reference Demo,进入到我们所要执行文件的路径后,敲入csc Hello.cs进行编译。这时我们发现,程序已经编译完毕,并且生成一个可执行的文件Hello.exe,然后我们继续敲入Hello去执行那个exe文件,我们发现屏幕上输出了Hello World!的字符。如图:
![](http://album.hi.csdn.net/App_Uploads/chopper7278/20080923/145159250.jpg?d=20080923145204656)
好,现在我们的第一个程序就算完成了,接下来我们来讲解一下刚才我们所写的程序。
using System;
System这个名字指向一个包含了基本C#使用类集合的命名空间,这个命名空间包含了下面的Console类, WriteLine是Console类的一个函数,它的作用是在屏幕上输出指定的内容。在这个例子中,它输出了“Hello World!”这个字符串,我们注意到在代码的结尾处有分号,这个分号就表示一行代码的结束,这是C#语言的约定。
下面我们来看一下什么叫名字空间。
PPT:.NET Framework类库由命名空间组成。每个命名空间都包含可在程序中使用的类型:类,结构,枚举,委托和接口。
我们可以这样理解命名空间,命名空间包含了一组功能或者类型相近的类,当我们使用using,命令语句去调用这个命名空间以后,就可以在程序中使用这些类。
PPT:大多数C#应用程序从一个using指定节开始。该节列出应用程序将会频繁使用的命名空间,避免程序员在每次使用其中包含的方法时都要指定完全限定的名称。
这意味着什么呢?这意味着我们可以用另外一种方法来使用命名空间,好,切换到到代码,我们把引用命名空间的代码删除掉,然后直接在Console前面加上命名空间的前缀然后保存,代码如下:
- class Hello
- {
- static void Main()
- {
- System.Console.WriteLine("Hello World!");
- }
- }
进入命令行窗口,重新编译这个文件,然后再执行。我们发现程序执行了相同的功能,如图:
也就是说,你可以在程序开头直接引用这个命名空间,也可以在你所使用类的前面加上它的命名空间的前缀,它们的效果是一样的。当然,如果你的代码包含了很多System的命名空间地下的类,那就没有必要这么做了。
![](http://album.hi.csdn.net/App_Uploads/chopper7278/20080923/152435453.jpg?d=20080923152447468)
也就是说,你可以在程序开头直接引用这个命名空间,也可以在你所使用类的前面加上它的命名空间的前缀,它们的效果是一样的。当然,如果你的代码包含了很多System的命名空间地下的类,那就没有必要这么做了。