首页 > 开发 > 综合 > 正文

Visual Basic和C#功能对比

2024-07-21 02:21:09
字体:
来源:转载
供稿:网友

首先声明,此处仅作语言方面的对比,在.net生产力上,两者没有区别。进行这个对比是为了澄清对visual basic和c#功能错误的认识和流言。以下所有区别都是经过较为深刻的研究得出的,相比一些常见的对比来讲更有科学性

下面先对比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比较强,还是会有人这么说。这就说明语言或开发工具的歧视不是功能差异造成的,那真正的原因是什么呢?
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表