终于来到第二章了,真是不容易(呵呵,大家少安毋躁)。
这章总的来说就是对C#的一个总体的概述。首先通过对以往的编程语言(汇编,C/C++,java,vb)的回顾,强调这些语言与C#的联系及C#对这些语言优秀特性的继承,试图在其中打到C#的影子。然后对现在市面上流行的编程语言与C#进行比较,从而突出C#做为新一代的编程语言的重要性及优越性。之后再次简述了C#的新特性(感觉作者的废话太多了)。最后简述了C#在各种程序开发中的应用及C#的编译器的使用。
这章的大致内容就是这些,下面依照各分节的顺序来看一看各节的主要内容。
语言发展史部分
汇编语言的出现
.NET程序并不包含机器指令,而包含一组必须用运行时程序解释的中间语言指令。中间语言指令比汇编语言指令更抽象。
中间语言看起来像是一个带有处理对象的外部命令的汇编语言程序。
C语言部分
这部分主要说明了C#与C的一脉相承。强调了C#在继承了C的强大功能的同时又鄙弃了其使用的困难性。
VB部分
指出VB在OOP的先天不足,而要强调的是C#功能的完美而且与VB一样简单容易上手。
JAVA部分
在这一节,首先指出了JAVA的优势,然后当然是对JAVA的海扁了。不过其中还是有一些可看之处。
在语法上,JAVA非常类似于C++,但有一些区别
(1)JAVA不支持指针,因为指针是C++程序中许多很难处理的错误源。在JAVA中,对象总是通过引用来处理。
(2)JAVA不支持运算符重载,因为不正确的运算符重载常常会导致大量的混乱,特别是多个开发人员参与的大型程序。
(3)JAVA完全是面向对象的,即所有的函数都必须在类的范围内定义。因为C++支持全局函数,所以C++允许程序员返回它们的过程根。
(4)JAVA带有类的扩展分层结构,可以进行窗口、网络和其他问题域的处理。
(5)JAVA建议把类的声明和执行放在同一文件中。
(6)JAVA运行时提供了一种防止内存遗漏的无用存储单元收集机制。
与其它语言的比较
这部分写的太恶心了,说的基本都是C#的好其它语言的坏。
主要的观点如下:
在与VB的比较中说明C#的面对对象比VB高,在语法上比VB更简洁。
在与VB.NET的比较中,说明C#是.NET的首选语言。
与VC++比较中说明,C#比C++的效率更高,更容易。
在与C++Builder及Delphi比较中说明C#的平台独立性。
下面来看看与JAVA的比较
(1)C#的语法要比JAVA强大,因为C#支持运算符重载和类型安全的枚举,另外,还可以在C#程序中选择嵌入式指针和其他不合法的语法。
(2)C#可以与以其他.NET语言编写的代码进行无缝交互操作
(3)C#可以看作是一个比较便宜、不太完整的JAVA替代品
(4).NET基类为C#提供了一个统一的、标准化的源,以满足常用功能的需要。
后面提到的与Javascript及vbscript的比较就不想再多说了,因为实在太牵强。
C#的应用
(1)ASP.NET应用程序
(2)WEB窗体
(3)WEB控件
(4)WEB服务
(5)类库
(6)WINDOWS应用程序
(7)WINDOWS控件(不必注册.NET组件,只需把组件的一个副本放在客户应用程序的目录下,客户机就可以访问它。)
(8)控件台应用程序
C#的特性概览
(1)基于.NET基类
(2)流控制语句(支持for each结构以及A?B:C)
(3)面向对象的功能
(4)反射和属性(这块说的很含糊,不是很明白)
(5)可以处理不安全的代码
C#编译器
(1)C#程序编译的两种方式,命令行方式和集成的IDE方式。
(2)输入输出文件:csc SourceFile.cs /out:TargetFile.exe(大家应该都能看明白)
(3)编译不同的工程类型(其实关键就是参数的不同)
/t:exe 建立控制台应用程序。
/t:winexe 建立WINDOWS FORM应用程序。
/t:library 建立一个包含清单的独立装配件。
/t:module 建立一个装配件文件,但没有清单。
这章的内容很多,感觉上也很笼统。不过我想对于我们初学者来说掌握这些也应该足够了。由于这只是个铺垫,后面还有更多的介绍,所以不想再深究下去了。带着疑问看下去,不是更好。
让我们期待下一章吧。