vb.net跟c区别 net和vb( 四 )


6、异常处理 。VB支持两种形式的异常,即.net框架的异常和VB自己的错误号码 。而C#只支持第一种 。用到VB自己的错误号码的程序几乎无法移植到C#中,所以应该尽量使用.net框架的异常,如下面VB语句:
Try
‘发生错误的代码
Catch When Err.Number=52
‘解决错误的代码
End Try
这段代码无法直接移植到C#中,只有用Exception对象取代Err对象获得异常信息 , 才能顺利移植 。另外VB的When语句带给Try语句十分灵活的用法 , 必须用很高的技巧才能在C#中实现 , 这就需要具体问题具体分析了 。
VB支持Exit Try语句,可以直接从Try块或Catch块跳转到Finally块 。C#没有提供类似的语法,可以用以下技巧:
[Visual Basic]
Try
‘一些语句
Exit Try
Finally
‘一些语句
End Try
[C#]
try
{
//一些语句
goto__leave;
}
finally
{
//一些语句
}
__leave://别忘了这里还有哦!
总之是利用了finally块无法跳过的特征,用goto语句模拟了Exit Try语句 。
如果VB程序用的是VB特有的On Error GoTo语句实现的错误处理,问题就麻烦了 。代码可能在过程中上下跳跃,无法预料语句的执行方式 。这种代码理解起来就头痛,更不要说移植了 。总体来说,把所有语句统统转移到try块中,然后用catch一一处理错误 。遇到要返回(Resume语句)的时候,只好Copy代码了 。反正不是一件容易的事情,慢慢改就是了 。
7、模块 。VB支持模块,C#不支持 。但也没有关系,只要在C#中制造一个abstract类,共享所有成员,就和模块一样了 。当然不能像VB一样直接访问模块中的成员,需要用到“类名.成员名”的用法 。
8、接口 。C#在接口方面也没有VB强大(怎么这么重要的功能也不做得好一点?),VB采用Implements语句结合接口的成员和类的实现成员,而C#是用名称结合 。因此VB就可以随便修改实现成员的访问级别和名称,而C#就不能改名称 。将C#移植为VB时 , 最好利用VB.net编辑器直接实现接口,比较简单 。把VB移植为C#时,就必须把改过的名字都改回来,遇到名字冲突就更讨厌了(这时候我几乎不想再移植为C#了) 。给一个例子:
[Visual Basic]
Public Class Class1:Implements IMyInterface
Public Sub DoSth()Implements IMyInterface.Method1
End Sub
End Class
[C#]
public class Class1:IMyInterface
{
public void Method1()
{
}
}
9、运算符重载 。这会遇到VB头痛了 , 既然VB不支持运算符重载 , 那么就必须用子程序和函数来模拟运算符 。比如建立Plus和Minus方法模拟+和-的运算 。当然还是有很多情况(比如遇上了explicit和implicit语句)就真的没有办法了,只好不移植了 。运算符重载是一个很不错的功能,它能使很多操作简单地完成,如果VB支持它 , 就真的是完美语言了 。
【vb.net跟c区别 net和vb】vb.net跟c区别的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于net和vb、vb.net跟c区别的信息别忘了在本站进行查找喔 。

推荐阅读