How to: Declare a Structure (Visual Basic)

You begin a structure declaration with the Structure Statement, and you end it with the End Structure statement. Between these two statements you must declare at least one element. The elements can be of any data type, but at least one must be either a nonshared variable or a nonshared, noncustom event.

You cannot initialize any of the structure elements in the structure declaration. When you declare a variable to be of a structure type, you assign values to the elements by accessing them through the variable.

For a discussion of the differences between structures and classes, see Structures and Classes (Visual Basic).

For demonstration purposes, consider a situation where you want to keep track of an employee's name, telephone extension, and salary. A structure allows you to do this in a single variable.

To declare a structure

  1. Create the beginning and ending statements for the structure.

    You can specify the access level of a structure using the Public (Visual Basic), Protected (Visual Basic), Friend (Visual Basic), or Private (Visual Basic) keyword, or you can let it default to Public.

    Private Structure employee
    End Structure
    
  2. Add elements to the body of the structure.

    A structure must have at least one element. You must declare every element and specify an access level for it. If you use the Dim Statement (Visual Basic) without any keywords, the accessibility defaults to Public.

    Private Structure employee
        Public givenName As String
        Public familyName As String
        Public phoneExtension As Long
        Private salary As Decimal
        Public Sub giveRaise(raise As Double)
            salary *= raise
        End Sub
        Public Event salaryReviewTime()
    End Structure
    

    The salary field in the preceding example is Private, which means it is inaccessible outside the structure, even from the containing class. However, the giveRaise procedure is Public, so it can be called from outside the structure. Similarly, you can raise the salaryReviewTime event from outside the structure.

    In addition to variables, Sub procedures, and events, you can also define constants, Function procedures, and properties in a structure. You can designate at most one property as the default property, provided it takes at least one argument. You can handle an event with a Shared (Visual Basic)Sub procedure. For more information, see How to: Declare and Call a Default Property in Visual Basic.

See Also

Tasks

Troubleshooting Data Types (Visual Basic)

Reference

User-Defined Data Type

Concepts

Data Types in Visual Basic

Composite Data Types (Visual Basic)

Value Types and Reference Types

Structure Variables (Visual Basic)

Structures and Other Programming Elements (Visual Basic)

Structures and Classes (Visual Basic)

Other Resources

Elementary Data Types (Visual Basic)

Structures (Visual Basic)