扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
下面先对比Visual Studio .NET 2003中,两种语言功能的对比。*表示对方语言中没有这项功能,但是可以用别的语法在IL级别实现完全同样的功能。注意,本次比较只选择有意义的功能,某些功能,如循环、分支语句等传统功能不在比较之列。同时,VB因兼容老版本而遗留的,不具有现代语言特征的语法也不在比较之列(如On Error语句,Option Explicit语句等)。
Visual Basic有而C#没有的功能 |
C#有而Visual Basic没有的功能 |
局部static变量* WithEvents和Handles语法* 可选参数 按名传递 属性参数 按非虚方式访问一个虚函数 换名实现接口 后期绑定 With语句* 用Imports导入静态成员 模块 Is操作符* Try…Catch When语句 Visual Basic运行时库的功能和函数 |
运算符重载 为event指定add与remove访问器 using语句* XML注释文档 不安全代码和指针 as操作符 out修饰符* 编译器CLS检查 |
接下来,是未来Visual Studio 2005中两者功能的对比。在这个对比中,所有因Visual Studio 2005新增功能产生的差异,将以粗体字表示。注意,并不是每一项新增功能都能产生两者的差异,比如泛型和Partial Type都是两者皆有的新功能。
Visual Basic有而C#没有的功能 |
C#有而Visual Basic没有的功能 |
局部static变量* WithEvents和Handles语法* 可选参数 按名传递 属性参数 按非虚方式访问一个虚函数 换名实现接口 后期绑定 With语句* 用Imports导入静态成员 Is操作符* Try…Catch When语句 Visual Basic运行时库的功能和函数 默认实例 My命名空间 |
为event指定add与remove访问器 不安全代码和指针 out修饰符* 迭代器 匿名方法 |
可见无论什么版本的对比,都是Visual Basic的功能比较多。当然,仅凭功能的多少,不能改变个人对语言的喜好,也不大可能成为选择开发工具的依据。但是有一句话给我的印象很深,我在CSDN上做调查时,有一个人说他用C#的理由是:“我用C#是因为C#比VB功能强,哪怕只是一点点也是强”。即使VB比较强,还是会有人这么说。这就说明语言或开发工具的歧视不是功能差异造成的,那真正的原因是什么呢?
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者