Visual Basic .NET是Microsoft Visual Studio .NET套件中主要组成部分之一。.NET版本的Visual Basic增加了更多特性,而且演化为完全面向对象(就像C++)的编程语言。
1.什么是VB.NET
Microsoft推出全新的编程和操作系统Framework——.NET,支持多种语言利用公共.NET库开发应用程序,这些应用程序在.NET Framework上运行。使用Visual Basic在.NET Framework上编程,这就是VB.NET。
2.VB.NET有什么新特点?
VB.NET比 VB6.0更加稳定,而且完全面向对象。也许你还记得,VB6.0不支持继承、重载和接口,所以不是真正面向对象的。而VB.NET则支持这些面向对象特性。VB6.0有两个薄弱环节——多线程和异常处理。在VB.NET中,开发多线程应用和使用C++/C#别无二致,结构化异常处理也得到支持。
3.命名空间与集合
一个namespace是类和组件的逻辑组合,其目的在于将.NET class按类别定义。.NET Framework中的组件被称为集合(assembly)。全部.NET代码在数百个库文件(DLL)中定义。Namespace把assembly中定义的类组织起来。一个namespace可以包括多个assembly,一个assembly也可以在多个namespace中定义。 namespace树的根节点是System namespace。在.NET Library中,每个class都在一组相似的类别中定义。例如,System.Data namespace只包括数据相关类。同样,System.Multithreading只包括多线程类。
在使用.NET支持的语言(如C#、VB.NET、C++.NET等)创建新应用程序时,你会注意到每个应用程序都被定义为一个namespace,而所有的class都归属于这个namespace。通过引用这个namespace,其它应用程序就能存取这些class。 在.NET中,代码被编译为中间语言(Intermediate Language,IL),assembly中存储了IL代码、元数据和其它资源文件。同一个assembly可以附属于一个或多个Exe/DLL。所有的.NET库都存储在assembly中。
4.类成员访问域
关键字 | 作用域 |
Private | 限于class内部 |
Public | 可以从class外访问 |
Friend | 限于class所属的应用程序内 |
Protected | 只能被class和其派生类访问 |
Protected Friend | 能被class、应用程序和派生类访问 |
6.VB.NET: 完全面向对象的编程语言抽象、封装、多态、继承是面向对象语言的四个基本属性。VB6.0不支持继承,而VB.NET则不然。所以,和C++一样,VB.NET也是完全面向对象的编程语言。VB.NET用Class...End Class语句对创建class。每个VB.NET至少包括一个Module(模块)。Module在Module…End Module语句对中实现。应用程序的主要模块是Main方法,亦即应用程序入口点。
和VB6.0相似的地方是,都可以使用Function/Sub关键字定义方法。
6.1下面的例子显示了如何创建class、添加方法,并从主程序调用方法:
Imports System Module Module1 Sub Main() Dim cls As TestClass = New TestClass Console.WriteLine(cls.MyMethod) End Sub Class TestClass Function MyMethod() As String Return "Test Method" End Function End Class End Module6.2 Property属性(Property)是类变量的公共描述。Property…End Property语句用以创建property。属性的Get/Set方法分别用于取得和设置属性值。
Imports System Imports System.Console Module Module1 Sub Main() Dim cls As TestClass = New TestClass WriteLine(cls.MyMethod) WriteLine(cls.Data) cls.Data = "New Data" WriteLine(cls.Data) End Sub End Module Class TestClass Private strData As String = "Some Data" Function MyMethod() As String Return "Test Method!" End Function ' Adding Data property to the class Public Property Data() As String Get Return strData End Get Set(ByVal Value As String) strData = Value End Set End Property