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

终于来到第二章了,真是不容易(呵呵,大家少安毋躁)。

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

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

让我们期待下一章吧。

时间: 2024-08-08 00:30:00

走进C# (我的C#学习之旅)之三的相关文章

我的Android学习之旅(转)

  去年大概在七月份的时候误打误撞接触了一阵子Android,之后由于工作时间比较忙,无暇顾及,九月份的时候自己空闲的时间比较多,公司相对来说加班情况没以前严重.开启了个人的Android学习之旅,初衷是想将Android的博客做个索引文章的,不过想想还可以分享一些学习中的历程,算是对自己的Android学习 有个交代吧.由于在公司有工作,学习的时间通常就是周一到周五晚上的时间和周末时间,周一到周五晚上的时间不确定,因此牺牲了大量的周末时间来学习Android,有点像苦行僧,时间段持续了三个多月

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

前面两章花了很多的时间都在讲述一些理论的东西,大家是不是觉得很无趣(是!说真的我的头也大了,我也是强挺着读下去的.).那么这回大家终于开以松一口气,从这一章开始,我们将正式踏进C#的世界了.由于这章的内容比较多,也比较重要,所以分几节来学习.Ready,Go! 这一章主要讲解了C#的语法及词法结构.包括C#程序的基本结构.数据类型.常量.变量.操作运算符.流控制,注释,C#的编译方面等内容.我看了一下他的许多方面与C++和JAVA有相似之处,我想有以上语言基础的朋友学起来会更快一些. 下面以一个

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

怎么样?答案是这样的 s1 is A strings2 is A strings1 is now Anothing strings2 is now string 看到这个结果大家感觉怎么样!我是很感到意外的.因为根据原来的C实现字符串的方式, 在这里面作为一个指针来说,s1与s2应该指向相同的地址. 另外对于字符串处理还有另一个问题,如下例:要构建如下一个串:"C:\PROGRAM FILE\WOM",我想大家明白我的意思了吧!就是说在这里有 \ 但是 \ 是做为转义字符来用的.(嗯,

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

在正式开始讲解数据类型之前,我要强调的一点是:C#和Java一样都是强类型的语言.所谓的强类型的语言第一点就是说C#的每个变量都是有类型的,而且每个表达式也有类型.这种类型的定义都是相当严格的.第二点就是说在C#中所有的数值传递,不管是直接的还是通过方法调用经由参数传递的都要先进行类型相容性的检查. 简单说C#的数据类型主要分为值类型和引用类型两大类.那么这两大类类型究竟有什么区别呢?关于这个书中说了很多,其实最主要的是就是他们的存储位置和引用方式不同.值班类型变量把其数据存储在堆栈中,而引用类

VS.NET 学习方法论——tuenhai的 VS.NET 学习之旅

作者:Tuenhai.com MSN: king#tuenhai.com 版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明 http://www.Tuenhai.com/ 题记 : 即使你没有一点编程经验,只要你愿意,并理解本文介绍的学习方法,你也可以象作者一样轻松.愉快地步入程序设计之门.让我们一起开始激动人心的 VS.NET 之旅.一.通过 Internet 获取知识的能力是网络时代最重要的能力 在 26 岁的时候,给自己定下目标, 35 岁之前必须掌英语和

C++ 学习之旅三——我和超级玛丽有个约会

学习了c++有一周有余了吧,感谢孙鑫老师的视频教程,让我   对C++有了基本的了解,并理解到C++与.net 的许许多多的区别,更要感谢网民为programaking的人,会为我提供了超级玛丽制作揭秘 这套宝贵的教程,让我 做做出了这个项目,对c++ 有了一个更深层次的认识.我就把我做超级玛丽这个游戏的心得,体会写成博客分享给大家把.  首先,我说说对C++的最直观的感受吧!熟悉了.net 智能提示,开始一开始发现C++根本没有提示了.后来google了一下,下载了一个visual assis

C++ 学习之旅一——Windows程序内部运行原理

      学习C++与.net不同的是,一定要搞清楚Windows程序内部运行原理,因为他所涉及大多数是操作系统的调用,而.net毕竟是在.netFrameWork上唱戏.        那Windows应用程序,操作系统,计算机硬件之间的相互关系究竟什么了,下面的图就给予很好的解释.       向下箭头①是 应用程序运行判断处理的结果,输出到输出的设备.       向上箭头②是输入设备,输入到操作系统中.       向下箭头③代表API,我们要解释以下API是什么.API是应用程序接口

我的Java开发学习之旅------>Java经典面试题

摘自张孝祥itcast 从享受生活的角度上来说:"程序员并不是一种最好的职业,我认为两种人可以做程序员,第一,你不做程序员,你就没有什么工作可做,或者说是即使有可以做的工作但是你非常不愿意去做:第二,你非常痴迷和爱好程序,并且在这方面有一些天赋和优势.程序员的结局也是有两种:第一,默默退休,第二以程序员为起点或跳板,注意积累,跟对了好的老板或团队,找到和很好的搭档自己创业,成为IT金领和富翁." 人们在时间面前是平等的,吾生也有涯,所以,你的经验更丰富点,那不算什么,经验是用时间积累的

我的Java开发学习之旅------>工具类:Java获取字符串和文件进行MD5值

ps:这几天本人用百度云盘秒传了几部大片到云盘上,几个G的文件瞬秒竟然显示"上传成功"!这真让我目瞪口呆,要是这样的话,那得多快的网速,这绝对是不可能的,也许这仅是个假象.百度了一下才发现所谓的"秒传"是常见的"忽略式"上传方式,就是您上传了一个文件名为111.exe,MD5为一个数,有一个网友以前也上传一个叫222.exe,MD5和您上传的文件MD5码一模一样,所以这个文件上传到服务器上的时间就很短了,这是因为别人上传过这个文件,您上传这个文件