How to: Convert a User-Defined Type to a Visual Basic Structure
The Type statement of Visual Basic 6.0 is upgraded to the Structure statement of Visual Basic 2008. Two other options for upgrading the type are also discussed in this topic: converting to a class and converting to an interface.
The following Visual Basic 6.0 type is discussed in the procedures that follow:
Type Customer
Dim FirstName As String
Dim LastName As String
Dim Id As Long
End Type
Private Function FormatFullName(aCustomer As Customer) As String
FormatFullName = aCustomer.FirstName & " " & aCustomer.LastName
End Function
The Upgrade Wizard automatically upgrades a Visual Basic 6.0 type to a Visual Basic 2008 structure. The Structure is a type that supports members, such as methods and properties.
To upgrade a type to a structure
Run the Upgrade Wizard.
Note
The Upgrade Wizard is a tool used to upgrade a Visual Basic 6.0 application to Visual Basic 2008. It is automatically launched when you open a Visual Basic 6.0 project in Visual Basic 2008. For more information, see How to: Upgrade a Project with the Visual Basic Upgrade Wizard.
If you are interested in taking advantage of other features of the Structure type, look for methods that more properly belong in the structure. In this example, the FormatFullName method could be converted to a FormatFullName method in the structure:
Structure Customer Dim FirstName AsStringDim LastName AsStringDim Id AsIntegerPublicFunction FormatFullName() AsStringReturn FirstName & " " & LastName EndFunctionEndStructure
The Upgrade Wizard will automatically upgrade a Visual Basic 6.0 type to a Visual Basic 2008 structure. The Class type supports the same members as a Structure, but is a reference type. A class can serve as a base class, while a structure cannot.
To upgrade to a class
Run the Upgrade Wizard.
Replace Structure with Class.
If you are interested in taking advantage of other features of the Class type, look for methods that more properly belong in the structure. The following code shows the incorporation of FormatFullName into the class, and the Id property.
Class Customer Dim FirstName AsStringDim LastName AsStringPrivate idValue AsIntegerPublicProperty Id() AsIntegerGetReturn idValue EndGetSet(ByVal Value AsInteger) idValue = Value EndSetEndPropertyPublicFunction FormatFullName() AsStringReturn FirstName & " " & LastName EndFunctionEndClass
A third option is to convert the structure to an interface.
To upgrade to an interface
Run the Upgrade Wizard.
Replace Structure with Interface.
Replace variables with property declarations. Do not include the implementation.
Add methods, but remove the implementation.
The code might look like this:
Interface Customer Property FirstName() AsStringProperty LastName() AsStringProperty Id() AsStringFunction FormatFullName() AsStringEndInterface
The Interface can then be implemented by another class. The definition is shown below.
Class NewCustomer Implements Customer PublicProperty FirstName() AsStringImplements Customer.FirstName Get ' Add code here.EndGetSet(ByVal Value AsString) ' Add code here.EndSetEndPropertyPublicProperty Id() AsStringImplements Customer.Id Get ' Add code here.EndGetSet(ByVal Value AsString) ' Add code here.EndSetEndPropertyPublicProperty LastName() AsStringImplements Customer.LastName Get ' Add code here.EndGetSet(ByVal Value AsString) ' Add code here.EndSetEndPropertyPublicFunction FormatFullName() AsString _ Implements Customer.FormatFullName ' Add code here.EndFunctionEndClass
See Also
Tasks
How to: Upgrade a Project with the Visual Basic Upgrade Wizard