Visual Basic.NET是基于微软。NETFramework之上的面向对象的中间解释性语言,可以看作是Visual Basic在.Net Framework平台上的升级版本,增强了对面向对象的支持。但由于改动太大,导致VB.net对VB的向后兼容性不好。 大多的VB.Net程序员使用Visual Studio .Net作为IDE(integrated development environment).SharpDevelop是另一种可用的开源的IDE。VB.Net需要在.Net Framework平台上才能执行。
Vb.net与vb的联系和区别:
首先来说vb和vb.net都是面向对象的语言,但vb不是完全面向对象而vb.net是完全面向对象的。vb.net是在vb的基础上发展而来,由于开发vb.net应用程序需要依靠.net framework以及需要引进大量类库所以导致vb.net对vb的向后兼容性不好。由于vb.net是完全面向对象的所以在一些语义上跟vb有些差别如按钮的点击事件的定义vb中是不可以带参数的但在vb.net中可以传递参数
Vb:
Private Sub Command1_Click() End Sub
Vb.net:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click End Sub
虽然vb.net与vb在语义上有差别但在语法上还是跟vb很相似,如变量的定义跟使用(使用dim来定义)、系统方法跟函数以及自定义方法和函数(sub、function)。
不支持Set语句
VB6.0使用Set语句指派对象。例如:
SetmyObj = new MyObject Set a = b在VB.NET中,不需要使用Set指派对象。例如:
myObj= new MyObj() a = b
过程调用方式
VB6.0允许不用加圆括号调用过程(sub)。不过,用Call语句调用函数或sub时,一定要使用圆括号。例如:
Dim I as Integer Call EvaluateData(2, i) EvaluateData 2, i在VB.NET中,所有的方法调用都需要圆括号,而Call语句则是可选的。
流程控制的改变
下面是VB.NET对流程控制语句的修改:
1. GoSub不再受到支持。
2. Call、Function和Sub语句均可用于调用过程。
3. On ... GoSub和On ... GoTo语句不再受支持。可以使用Select Case语句来替代。
4. While ... Wend语句现在改为While…End While语句。不再支持Wend关键字。
vb.net特点:
1. 面向对象的编程语言。支持继承、重载、接口、共享成员和构造器。
vb.net中继承(inherits),靠实现接口从而实现多重继承(implements),方法的重载(overload)、重写(override)以及构造器都是vb6.0中不支持的。由于vb.net是完全面向对象的语言所以vb.net在面向对象方面与vb6.0的区别还是很大的。
如类的继承:
示例:
'父类 Class Class1 Sub Method1() Msgbox ("这是父类中的一个方法。") End Sub Sub Method2() Msgbox ("这是父类中的另外一个方法。") End Sub End Class '子类 Class Class2 Inherits Class1 Sub Method3() Msgbox ("这是子类中的一个方法。") End Sub End Class
2. 支持所有的CLS特性,如存取控制.NET类、与其它.NET语言交互、元数据、
3. 公共数据类型、委托等等。
Vb.net中委托的实现也使得vb.net中动态处理事件的实现更加方便。
4. 多线程支持。
多线程(thread)在vb.net中是一个新功能,vb中不支持多线程。
Dim Td AsSystem.Threading.Thread '定义一个线程 Dim n As Int32 Private Sub Button1_Click(ByVal sender AsSystem.Object, ByVal e As System.EventArgs) Handles Button1.Click Td = NewSystem.Threading.Thread(AddressOf abc) '实例化,指向abc过程 Td.Start() '开始运行线程 End Sub Sub abc() For n = 0 To 100000000 System.Threading.Thread.Sleep(10) '让它走慢一点 Next End Sub Private Sub Button2_Click(ByVal sender AsSystem.Object, ByVal e As System.EventArgs) Handles Button2.Click MsgBox(n) '可以看到n在变 End Sub
5. 结构化异常处理try catch语句。
相较于VB语言来说,VB.NET引入了许多特色。其中最值得注意的变化就是引入了结构化异常处理。虽然VB.NET仍然支持On Error Goto类型的异常处理,但是这样做并不是很好。我们应该充分利用VB.NET提供的结构化异常处理。
Try 段:可以产生一个异常,并且总是能够被执行到的代码段
Catch段:试图对一个异常做出处理,当异常发生时就会被执行的代码段
Finally段:进行一些清理工作,并且总能被执行到的代码段