首页 > 开发 > 综合 > 正文

走进C# (我的C#学习之旅)之三

2024-07-21 02:27:41
字体:
来源:转载
供稿:网友
注册会员,创建你的web开发资料库,终于来到第二章了,真是不容易(呵呵,大家少安毋躁)。

这章总的来说就是对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 建立一个装配件文件,但没有清单。


这章的内容很多,感觉上也很笼统。不过我想对于我们初学者来说掌握这些也应该足够了。由于这只是个铺垫,后面还有更多的介绍,所以不想再深究下去了。带着疑问看下去,不是更好。

让我们期待下一章吧。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表