由C#谈起

原创 2002年04月27日 15:52:00

由C#谈起


 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


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


 


如果说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.

由PYTHONPATH谈起

转自 http://www.cnblogs.com/feichexia/archive/2012/11/29/PYTHONPATH.html   PYTHONPATH是Py...
  • korekara88730
  • korekara88730
  • 2015年12月23日 15:03
  • 661

由Access Violation谈起

郁闷篇  下午调试程序,碰到了一个“Access violation at...”错误,据说这位拥有着“最令人头大的Windows程序错误之一”的美誉。因为代码量不小,没办法,只好分区排雷了。扫了一遍...
  • zhijializhangcao
  • zhijializhangcao
  • 2010年08月24日 23:54
  • 403

由kindEditor谈起

  • JAVAZHICHIZHE
  • JAVAZHICHIZHE
  • 2009年08月24日 09:23
  • 1531

由家里网络故障谈起

在家里用电脑WIFI连到路由器上网发现,不能登QQ,不能打开网页。用手机连上WIFI发现能登QQ和微信,但是不能打开网页。查看路由器发现WAN口连接正常。在路由器的“系统工具”-》“诊断工具”中用tr...
  • change81318
  • change81318
  • 2015年08月07日 11:26
  • 396

【机器学习自学笔记1】 从机器学习谈起

时间:2016.10.18 原文链接:http://www.cnblogs.com/subconscious/p/4107357.html
  • hujianpeople
  • hujianpeople
  • 2016年10月18日 11:22
  • 209

由GOOGLE的操作系统谈起

今天在CSDN上看到新闻标题,说GOOGLE要开发操作系统了.真有点让人振奋的感觉.毕竟用了这么多年微软的操作系统,大多数人都挺想看到一点新气象的.但是下班后用手机上网,看了一下新闻内容,却有点失望的...
  • hughxiaoming
  • hughxiaoming
  • 2009年07月08日 20:09
  • 330

android EditText 不自动获取焦点并弹出键盘

在XML中父节点设置对应属性 android:focusable="true" android:focusableInTouchMode="true"
  • qq_29755359
  • qq_29755359
  • 2017年11月28日 15:45
  • 32

大败局 | 从中国企业的“失败基因”谈起

并非追求利润的自由企业制度已在这一代人中失败,相反,是它尚未经受考验。...
  • CSDN_Adrian
  • CSDN_Adrian
  • 2016年06月28日 00:06
  • 163

第一章 从两个最简单的驱动谈起

1、 驱动分为NT式驱动和WDM驱动,所谓NT式就是不支持即插即用的驱动,WDM是支持即插即用的驱动。区别有以下几方面,可能不全面,在学习过程中再补充: (1)、NT式驱动包含头文件NTDDK.h,...
  • eric_zl_zhang
  • eric_zl_zhang
  • 2011年09月04日 23:02
  • 477

大数据,从身边谈起

大数据,这个词语通俗却难懂,我发现身边很多IT人对这些新技术、新趋势往往趋之若鹜又很难说的透彻,如果你问他大数据是什么,和你又有什么关系,他很难说的透彻,那么大数据是什么?其实并没有一种标准性的答案,...
  • weixin_38893680
  • weixin_38893680
  • 2017年06月30日 10:49
  • 141
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:由C#谈起
举报原因:
原因补充:

(最多只允许输入30个字)