VB.NET与VB6.0的区别二

一、继

继承是面向对象编程语言中最常用的技术。继承让你能够重用类代码和功能。

VB.NET支持继承,而VB6.0则不支持。继承的好处在于你能使用任何人编写的类,从这些类派生自己的类,然后在自己的类中调用父类功能。在下面的例子中,Class B派生自Class A,我们将从Class B中调用Class A的方法MethodA。

Imports System
Imports System.Console
Module Module1
    Sub Main()
        Dim bObj As B = New B
        WriteLine(bObj.MethodA())
    End Sub
End Module

' Class A defined
Public Class A
    Function MethodA() As String
        Return "Method A is called."
    End Function
End Class

'Class B, inherited from Class A. All members (Public and Protected)
' can be access via B now.

Public Class B
    Inherits A
    Function MethodB() As String
        Return "Method B is called."
    End Function
End Class

可以从一个class中派生多个自定义class,也可以从多个class派生一个自定义class。
共享的成员类的共享成员被类的所有实体共享。共享成员可能是属性、方法或字段/值域。在你不想让用户全面控制自己的类时,共享成员相当有用。例如,你可以开发一个类库,让用户通过共享成员使用其中的部分功能。

可以通过class本身引用共享成员,而无需通过类的实体。

Module Module1
    Sub Main()
        WriteLine(A.MethodA())
    End Sub
End Module

' Class A defined
Public Class A
    Shared Function MethodA() As String
        Return "Method A is called."
    End Function
End Class
二 多线程

多线程VB语言的一大弱点就是缺乏编写自由线程(free-threaded)程序的能力。在.NET Framework中,所有语言共享CRL(Common Runtime Library,公共运行库),也就是说,你可以用VB.NET、C#或其它.NET语言编写同样的程序。
System.Threading namespace定义了线程类。我们只需要引入System.Threading namespace,即可使用线程类。
System.Threading.Thread类提供线程对象,可以使用Thread类创建或破坏线程。
创建线程使用Thread类的实体创建一个新线程,然后用Thread.Start方法开始执行线程。线程构造器接受一个参数,该参数指明你要在线程中执行的procedure。在下例中,我想在oThread1(Thread类的一个实体)的第二线程中执行SecondThread过程:

oThread1 = New Thread(AddressOf SecondThread)
SecondThread procedure looks like below:
Public Sub SecondThread()
    Dim i As Integer
    For i = 1 To 10
        Console.WriteLine(i.ToString())
    Next
End Sub

然后,调用Thread.Start()开始线程:
oThread1.Start()
下面的代码创建两个第二线程:

Imports System
Imports System.Threading

Module Module1
    Public oThread1 As Thread
    Public oThread2 As Thread

    Sub Main()
        oThread1 = New Thread(AddressOf SecondThread)
        oThread2 = New Thread(AddressOf ThirdThread)
        oThread1.Start()
        oThread2.Start()
    End Sub

    Public Sub SecondThread()
        Dim i As Integer
        For i = 1 To 10
            Console.WriteLine(i.ToString())
        Next
    End Sub

    Public Sub ThirdThread()
        Dim i As Integer
        For i = 1 To 10
            Console.WriteLine("A" + i.ToString())
        Next
    End Sub
End Module
破坏线程 调用Abort方法来破坏(中止)一个线程。在调用Abort之前,确保用IsAlive判断线程处于活动状态。

If oThread1.IsAlive Then
  oThread1.Abort()
End If





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值