中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > .NET > C#
由C#谈起
作者:duanfeng 时间:2002-01-27 12:14 出处:互联网 责编:chinaitpower
              摘要:由C#谈起

由C#谈起


 


软件技术风云变幻、日新月异 ,让人眼花潦乱, 软件技术正进入了虚拟时代, , 大家是否已经作好准备了.当然万变不离其宗,基础知识还是很重要.


 


如果说C++是灵活高效, 则C#是(模块)简洁,人性化,符合Anders Hejlsberg的一贯风格.


 


学过Delphi的会发现, is/as运算符; 如Item类,里面的方法与属性几乎一样;在事件中回传sender引用也差不多;WinForm类的继承体系等, 这并不奇怪, 都是大师Anders Hejlsberg的作品, 应该这种模式已经比较完美.我觉得Anders Hejlsberg做C#时, 比做Delphi时,在模式上有很大进步, 当然Delphi在做DB方面不错.看看这个就知道了.


我觉得Anders Hejlsberg做C#时, 比做Delphi时,在模式上有很大进步, 当然Delphi在做DB方面不错.看看这个就知道了.


Delphi中是                       在C#中是

TObject                             Object

TPersistent                         MarshalByRefObject

TComponent                          Component

TControl                            Control

TWinControl

TScrollingWinControl                ScrollableControl

TCustomForm                         ContainerControl

TForm                                    Form


不当是这个, 里面的方法和属性也何其相似. 可见熟悉Delphi的兄弟有很多好处的.


 


C#是很大的特色就是人性化, 如reflection/persistence/serialze/ Remoting (与java类似),但更加出色,功能延展的很好.


 


.NET体系框中非常注意设计模式(JAVA也不错),如System下的各种分类, System.Convert中的类型转换模式,简洁清晰. .NET处理数据库的模式也不错.如SqlDataReaderod系列类, 减少了耦合, 融洽得不错.

 

Assembly包含模块,而模块包含类型,类型又包含成员。Assembly是通过元元素描述自身,创意很好,不象COM组件一样, 每个组件都需要注册, Assembly这种机制是通过reflection来实现, 不知EJB组件是否很好可以自我描述. 这说明.NET的组件模型有了新的进步.

 

MFC中CObject就做得不够好, 它不能保证接口的最小,相对于C#/VCL就差得多.而C#/VCL 经过一系列的单根继承体系, 分解得很好, 这是MFC的一大缺点, 举个例子, 如果我从CObject下继承一个类, 仔细想一想,是不是接口太大? 有些根本不需要, 我觉着, 最起码,应从CObject下多继承一层, 尽量保持接口最小的原则.

 

C#,把namespace发挥得极佳, 我想, 及其它也遵守一个OO原则, 在有需求点的地方抽象, 于是就有了namespace.看看,所有的C#里的东西是不是都可以用OO的思想来理解? 


MFC中CObject就做得不够好, 它不能保证接口的最小,相对于C#/VCL就好得多. 经过一系列的单根继承体系, 分解得很好, 这是MFC的一大缺点, 举个例子, 如果我从Cobject下继承一个类, 仔细想一想,是不是接口太大? 有些根本不需要, 我觉着, 最起码,应从CObject下多继承一层, 尽量保持接口最小的原则.


 


C#,把namespace发挥得极佳, 我想, 及其它也遵守一个OO原则, 在有需求点的地方抽象, 于是就有了namespace.看看,所有的C#里的东西是不是都可以用OO的思想来理解?


 


我认为C#可以增加的东东:


1.     在一此些情况下,也允许类不从Object类下继承, 因为它强制了我们的设计的思路,但相对比较简单, 没有了灵活性.


2. GP支持,但GP好象还不是非常成熟, 好象下一版将支持


由于第一次写文章, 有不对的地方还请指教. 我的QQ是48488278.

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有