从高一在苹果机上接触BASIC到今年,大约有17年了,至今还是VB6。但工作上越来越多的网页类开发,逼我进入C#的世界。但之前的VB并没有实现完整的对象,因此我对C#的对象概念还是很弱。而要加强概念,唯有不断地练习。不断练习又要有快速的编程环境。但我的硬件环境已经固定了(三年前买的神州笔记本最便宜的一款),所以又要找最高效的练习方式。还好C#也有命令行编译,因此开始走进面对对象的世界。
Microsoft Visual Studio 8\Common7\Tools下有一个批处理VSVARS32.BAT,运行它后就可以在任何地方运行csc.exe,我后来找了一下,才知道这个EXE的位置在C:\WINNT\Microsoft.NET\Framework\v2.0.50727。并且在其它版本中都还有csc.exe这个程序。VSVARS32批处理只能临时加上csc的路径,实际上,只要在“我的电脑”右键“属性”的“高级”页签的“环境变量”按钮中,把PATH加上“C:\WINNT\Microsoft.NET\Framework\v2.0.50727”这个,这样每次重启后都可以直接使用csc了。
我设定了一个C:\C#为工作目录,输入的第一个程序仍然是“hello world”,在记事本中输入如下内容,并保存为hello.cs:
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
这样就可以在工作目录中输入csc hello.cs。如果一切正常,则显示如下提示(完整内容):
Microsoft (R) Visual C# 2005 编译器 版本 8.00.50727.1433
用于 Microsoft (R) Windows (R) 2005 Framework 版本 2.0.50727
版权所有 (C) Microsoft Corporation 2001-2005。保留所有权利。
目录下就生成一个hello.exe文件,运行结果则是在界面显示“Hello, World!"。
·注意:命令行csc hello.cs中,不能把.cs给少了,否则编译器会提示:
error CS2001: 未能找到源文件“hello”
fatal error CS2008: 未指定输入
·文件hello.cs不一定要这个名称,可以任意,如h.txt,执行csc h.txt后,生成h.exe。
·再扩展开来,一个文件并不一定只能一个类,可以多个类,如下面的代码在p.cs中:
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
·用手工输入的坏处就是大小写不好掌握,例如,我开始把Main输成main,编译不成功,提示:
error CS5001: 程序“c:\C#\hello.exe”不包含适合于入口点的静态“Main”方法