.NET语言的选择,C#,VB.Net哪个更有前途?Visual Basic.net还是C#
——如何选择.net语言
在.net中,如何选择VB或C#?这似乎已经争论了很久 。很多人盲目选择,也产生了许多流言和错误 。本文将从以下方面指导你选择正确的开发语言 。
功能上的考虑
许多人认为C#的功能比VB.net强大,或者C#更加适合.net等 。其实这不是一两句话能比较清楚的 。C#的确有VB无法完成的功能,但VB也有C#无法完成的功能 。总的来说 , 对于.net开发 , VB和C#没有任何差别,都100%兼容于CLS 。下面列出的是他们语言功能上的不同,这些仅仅是语言实现上的问题 , 不会影响到生成的代码 。打*号的内容与CLS不兼容 。
C#有而VB没有的功能:
1、 运算符重载 。*
2、 不安全代码(指针和固定内存区) 。*
3、 无符号整数 。*
4、 移位运算 。
VB有而C#没有的功能
1、 即时编译 。
2、 静态事件绑定 。
3、 条件异常捕获 。
4、 COM兼容类 。*
5、 宽松的类型检查和变量声明 。
6、 Visual Basic Runtime库 。
7、 可选参数、带参数属性、模块等语言特征 。*
8、 动态数组 。*
可见 , 实际上功能更强大的是VB而不是C# 。不过它们不一样的地方多半是无关紧要的特征 。总体上来说,不应从功能上选择VB或者C# , 因为他们没有什么具体的差别 。
性能上的考虑
性能是程序员最关心的问题 。VB和C#都生成一样的IL,因此理论上说不会有性能的差异 。但许多人为什么说C#的性能高于VB.net呢?这是因为VB.net支持即时编译,就是一边书写代码一边编译 。这样可立刻发现语法错误,使调试变得更加容易 。但是这样一来VB就需要随时浏览整个代码文件,并把临时数据储存 。这造成VB.net生成的代码中常常具有冗余部分 。但也不能就此下结论说VB比C#慢 , 当用户选择打开优化并且以Release方式编译工程,就能得到与C#一样简短快速的代码 。
学习上的难度
这部分不仅仅初学者需要考虑,那些从现有开发工具转移到.net的开发人员也需要考虑 。首先 , VB和C#都是非常简单的,对于初学者来说,VB提供伸缩性更强的空间,因此比C#更加易于接受 。但这只是相对而言,C#对于初学者来说也不会有太多的困难 。
对于使用Visual Basic6或其他版本的程序员来说 。VB.net的语法显然要比C#更加接近VB6,网上流传的VB与VB.net差别被过分夸大 , 使部分程序员退缩 。其实VB.net增加的只是面向对象的思想,许多VB程序员不具备完善的面向对象编程开发经验,因此觉得VB.net难以接受,这是很容易克服的 。想想看,即使你要使用C#不也得学习面向对象吗?至于有C/C++/Java经验的人,C#是小菜一碟 。刚才说过C#和VB实际上都很简单,所以不见得VB程序员学习C#就要比C/C++程序员来的困难,反之亦然,有C/C++经验的人也可以果断的选择VB 。
移植现有代码
这一部分是程序员最头疼的部分 。但对语言选择有决定性的意义 。
从VB6移植代码的程序员,最佳选择就是VB.net,因为其他.net语言没有一种是与VB相似的 。而且即使VB6的工程移植到VB.net非常困难,也有一个移植向导可以帮助你完成大部分工作 。如果手工把他移植到C#,需要白白花费大量的时间 。而且刚开始使用C#的VB程序员通常都会为C#缺少他们熟悉的函数而头疼 。VB.net不会出现这种情况 。
从ASP移植到ASP.net , 首选语言仍然是VB.net,因为多数程序员使用的ASP语言是VBScript , 只有VB.net最大程度地接近这种语言 。
推荐阅读
- 联想怎么加播放速度显卡,联想怎么加播放速度显卡设置
- 拍视频什么快门声音好用,拍视频什么快门声音好用一点
- linux自带解压命令,linux系统解压命令
- Python函数proc python函数print
- mysql查询库的命令,mysql查询数据库表命令
- .net如何做区块链,net区块链开发教程
- 纸尿裤直播卖话术,纸尿裤的销售话术
- 安卓客户端go语言 安卓golang
- 新媒体运营如何做计划,新媒体运营培训课程