vb.net总结

来源:互联网 发布:常用的预测数据方法 编辑:程序博客网 时间:2024/05/21 17:42

          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.ClickEnd Sub

虽然vb.net与vb在语义上有差别但在语法上还是跟vb很相似,如变量的定义跟使用(使用dim来定义)、系统方法跟函数以及自定义方法和函数(sub、function)。

不支持Set语句
VB6.0使用Set语句指派对象。例如:

 SetmyObj = new MyObjectSet a = b
在VB.NET中,不需要使用Set指派对象。例如:

myObj= new MyObj()a = b

过程调用方式 

VB6.0允许不用加圆括号调用过程(sub)。不过,用Call语句调用函数或sub时,一定要使用圆括号。例如:

Dim I as IntegerCall EvaluateData(2, i) EvaluateData 2, i 
在VB.NET中,所有的方法调用都需要圆括号,而Call语句则是可选的。
ByVal是默认参数类型
在VB6.0中,在调用函数或sub时ByRef(传址)是默认类型。那意味着所有改变将反映到传入的变量。VB.NET改变了这种方式。现在,默认的参数类型是ByVal(传值)。

流程控制的改变
下面是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 Class1Sub Method1()Msgbox ("这是父类中的一个方法。")End SubSub Method2()Msgbox ("这是父类中的另外一个方法。")End SubEnd Class'子类Class Class2Inherits Class1Sub Method3()Msgbox ("这是子类中的一个方法。")End SubEnd Class

上述代码中,Class1是父类,而Class2是其子类。Class2继承了Class1中的所有方法,当创建Class2的实例时,其实例可以调用Class1中提供的Method1()和Method2()方法。

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段:进行一些清理工作,并且总能被执行到的代码段 

原创粉丝点击