C++和C#的对比

2020-05-17 16:00:20来源:博客园 阅读 ()

容器云强势上线!快速搭建集群,上万Linux镜像随意使用

C++和C#的对比

  从我进入CSDNVC/MFC的那一刻起,总能在这个版块看到这样那样的评论VC、C++言语是不是要筛选,被C#彻底替代诸如此类,这便是传说中的“月经贴”。一些新手或许就会由于看到这些帖子感到迷茫,比方他们正在开端学VC,要是忽然发现被筛选了,岂不是白学了?对此我仔细看了每次的“月经贴”,论坛中的一些老大们的言语我也都看在眼里,他们对此是看得很清楚的。接下来我将会用中肯的言语说说我的见地,各位有什么定见能够跟帖评论。
  先说言语,C++作为数据结构入门的最佳言语的说法不少,其实有人认为Java愈加适合做数据结构入门的言语,我感觉其实要看个人的喜好。可是C#肯定不会用来做数据结构入门的言语,C++我认为是一个比较好的了解远离的言语,是全部之本。Java中所说的引用,其实也便是C++中的地址传递的一种形式罢了,C++灵敏的强制转换,我觉得有得天独厚的优势,拿到一个地址,就能让它成为指向一个数据结构的指针,这是其他言语所无法比拟的。
  没有什么言语能比C++愈加贴近Windows自身了,这一点也是不可否认的。假如哪一天C#也能写驱动的时分,那么C++就真的会筛选了(这天或许不会太远又或许很悠远)。
  C#能做的,C++不一定都能做,C++能做的,C#也不一定都好做,所以经常看到有人拿这2个言语比照,我觉得的确没什么必要。
  C#冗杂的调用Win32API的方法,的确让人很不舒畅,C++这一点做得比它好。可是,C#强壮的网络操作,代码量大大地低于C++,咱们抛弃不必Socket,改用WinInet或是MFC中的封装好的网络类,比方CHttpFile,仍是没C#简略。C#的傻瓜式的类库操作和面向对象编程的完美特性,的确让其成为了Windows平台上最受欢迎的言语。或许,是微软想将Win32API渐渐地全部封装到C#的类库中去,我感觉微软有这个意图,或许将来C#就不需求调用那些冗杂的Win32API了,类库中均有供给也说不定。
  咱们为什么学VC?这点我曾经也问过自己。圣经上说:你必须知道本相,本相会使你自在。咱们学VC是为了自在,不受微软的框制。微软通过种种的FrameWork让你陷于其间,你觉得,哇,本来编程是这么简略啊,几句话就能搞定。你想知道微软在内部干了些什么呢?你不知道,当然,你假如认为你没必要知道,这个我彻底附和,我后面会说。就说杀进程吧,C#中不通过Win32API就那么一种方法,通过System.Diagnostics.Process找到进程,然后Kill之(假如我说的不对,运用C#的朋友请指正),而C++中,咱们彻底有无数种挑选,就说不凶恶的,TerminateProcess,凶恶点的呢?不可胜数。进程内存填0,卸载模块,音讯洪水,句柄强制关闭,强制开释它的堆,太多太多了,甚至我注入进去,内部Raise一个反常,它也就挂掉了。维护进程,不论内核下仍是应用层,C#肯定是做不了的,C++有自己高端的当地,其他言语无法涉足。你见过C#做的杀毒软件吗?
  C#,极其简易的界面操作,令人看着很舒畅的编码,他有太多的当地,C++底子无法涉足。拿C++做WebServices除非是大脑进水,用C++做网络蜘蛛,也底子是无聊之举,要么就C#,要么就拿Python来干(个人漏见),超级大量的数据,拿垃圾回收基本上为0的C++去做,几乎便是自找麻烦。C#的WebForm,和Jsp占有着Web的大片江山,C++能吗?不能。C#是一门博学多才的言语,类库强壮到反常,基本上能够这么讲,所以用C++的朋友也不能随便降低C#程序员,C#的程序员的层次分得比C++多许多,高层的也是象牙塔等级的。C#的架构师,那种恐惧的实力,C++中级程序员是无法幻想的。C#愈加注重于软件工程的应用,各种规划形式的运用,C++则注重于实现功用。
  C#的远景是不错的,我个人很看好它,MSDN杂志每期的文章或许有8成是C#,C++不算许多,微软的重心或许在C#上,期望C#逐步能替代C++。可是C++会这么简略被替代?不或许。就像一个搞管理的,你让他接管搞开发的人,让他从干一样到同时兼干这二样,会有这么简略么?c++的生命力至少还要7-8年,之后才会渐渐的淡出,可是只需追求自在的人存在,C++就不会消失;只需操作系统一天是用C++写的,C++就不会消失。
  下面说说言语的挑选问题,这2种言语各自的优劣,我在上面都做了简要的比较。我在月经贴中总看到争论,评论这2种言语哪个更好,甚至会呈现不和谐的字眼。我觉得这是何必呢?各自有各自的天地,请你也不要再说什么C++会没落的的话,那是你自己不必,就说C++没落?就像MSDN英文你看不明白,你就说API垃圾?你自己心里认为它不可,怎样降低,这个随便你自己心里快乐,别拿出来充专家,更别用自己天真的思想左右别人。微软4年前就放言,C#即将替代C++,今年都2009了,每年还不是一样有人跳出来叫嚣?
  选什么言语,随自己快乐,需求哪个用哪个,这是不对立的。开发数据库,我倾向于用C#,做Windows底层,我肯定是C++,都掌握下没有害处。VS2010中C++的新特性各位同胞能够重视下,不知道会加入什么,VC2008的特性我探究了这么久,还没有探究完毕。C#是越来越好用了,LinqtoSql让不明白数据库的人都能去操做数据库了,辅佐一些第三方类库,能发挥强壮的威力。彻底替代C++,等操作系统是C#写的,C#能开发系统中的全部组件的时分再说吧,至少现在C#还不能开发IsAPI,驱动吧?嘻嘻


原文链接:https://www.cnblogs.com/lyyzhi/p/12905577.html
如有疑问请与原作者联系

标签:AV微软sysWindowsClass系统

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:vtk学习记录(三)——初识vtkRenderer

下一篇:洛谷P1164->小A点菜