也许有人看见这个标题会说:没什么好比较的,都一样。是的,按照.net宣称的,也应该是一样的。但这两个语言和其开发环境,却还是虽大同也有小异的。当初我初学.net时也是以为没区别,仔细想了一下,害怕C#混淆我的c++和java,就选用了vb.net。现在主要使用vb.net,也少量使用了C#,就我的理解,给他们在使用上作些比较。
书写速度上的比较:C#是类C的,代码较少,多用符号;vb.net是类basic的,用字符描述结构。初看来C#的录入速度应该更快,因为字符量较少;而我认为,vb.net的书写速度应该更快。对于初学者来说,或者键盘录入速度不快的人(有很多编程经验也很丰富的),或者是键盘不顺手的,敲符号很麻烦,经常都要看键盘,这样速度比较低。对于书写速度较快的,我感觉vb.net书写上也不会差,因为很多代码都不用手敲,一回车就能出来。再加上不区分大小写,只要声明的时候大小写符合规范,后面还能自动纠正大小写,不用总去按shift,也是一个很好的优点。而且感觉vb.net的自动完成比c#要好一些。所以我觉得从这一点上来说,vb.net占很大的优势,除非是c高手(还要是打字高手),c#书写起来才会很快。
IDE上的区别:
1. 我感觉到的vb.net唯一的优点,就是即时后台编译,写错一点东西,一换行就能出来,而c#不能保证所有错误都能在换行后指出。
2. C#的优势在于能够生成doc,而vb.net却不能(哪位朋友知道其它工具的,也请告诉一声)。
3. C#的类视图和vc的一样,能够比较方便的添加函数等。vb.net把这个功能放到了编辑器上面的列表框里,虽然对于事件和重载比较方便,但新增自定义函数就没那么方便了,虽然C#类视图里的相应功能录入上并不见得快,但有个带界面的还是很舒服嘛。
缺陷:我感觉vb.net最大的缺陷,也是我最开始认识到vb.net的不足,就是在中文符号上的问题。vb.net将中文的()”‘都认为是半角符号了,可以自动转换。虽然可以通过ctrl+z取消自动转换,但实际上它仍然是作为半角符号使用的。比如:我想有一个含有全角引号的字符串:"“" ,这在c#里面是理所当然的,但vb.net会认为这是三个半角引号,编译错误。那这样呢:"““",嗯,不出错了,但实际上这个字符串却是:""""。也不是没有办法,可以这样:Chr(41392),或者:Chr(41393)。是不是很让人郁闷呢?不知道有没有其它解决方案。。。
感觉可能是C#开发组和vb.net开发组的沟通少了,要不就是故意的?
最终结论,应该算打个平手吧,都有不尽人意的地方,希望2005能有改善。
大家多多补充,看看还有什么不同的地方。
-
vb.net和C#开发环境和开发效率的比较
---------------------------
http://www.cnblogs.com/squirrel_sc
1. 如有引用,请包含本段文字及原始出处。以表示对作者的尊重,且能将有相似想法的人联系起来。
2. 如无特殊说明,本文的文字代表作者的观点和想法。由于人类的记忆和连通性的限制,可能会将别人的观点和想法当成自己的(会尽量避免,但我读书少,别蒙我:D);或有人会有同样的想法(那就太好了)。若有此类情况,请联系我。我会很高兴更新内容。
3. 每篇文章会根据反馈或新的想法,随时更新。我会尽量记得更新版本号。
出处:https://www.cnblogs.com/squirrel_sc/archive/2004/10/21/55068.html
栏目列表
最新更新
python爬虫及其可视化
使用python爬取豆瓣电影短评评论内容
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比