VB.NET编译器的不足,以及VB2005的改进

VB.NET的函数允许有返回值,反过来说就是VB.NET的函数可以不返回值。我认为这是一个很大的缺陷。
假设有下面一个函数Calc,它的功能是计算n的阶乘:

ExpandedBlockStart.gif ContractedBlock.gif Function Calc() Function Calc(n As IntegerAs Integer
InBlock.gif  
Dim i As Integer
InBlock.gif  
Dim r As Integer = 1
InBlock.gif  
For i = 2 To n
InBlock.gif    r 
= r * i
InBlock.gif  
Next
InBlock.gif
ExpandedBlockEnd.gif
End Function

显然这个函数是错误的,因为它忘了返回计算结果了。但是,它能通过编译!!!
如果这个程序是用C++或C#写的,编译将给出警告甚至错误。这个特性能让你马上发现问题。

VB.NET则不然,它将让你在运行时给出错误结果,而这个错误不一定会让你发现,即使发现,也需要花相当的时间去找出这个问题。我曾经吃了这个亏,后来就改用C#,这些问题就通通避免了。
很显然,这是VB.NET的一个重大缺陷。

***
不过,这一些缺点,在VB2005都完全得到了改进.它不仅保留了动态语言特性和优点,也增加了静态语言的代码静态分析.这样我们完全可以根据需要进行设置:
 (下图的选项中设置为warnning的项,在VB2005以前基本上都是不具备的,用惯C++的人肯定明白这些选项是如何的重要)


VB2005_CompileSetting.PNG
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值