O'Reilly logo

Object-Oriented Programming with Visual Basic .NET by J.P. Hamilton

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

3.2. Properties

In traditional OOP languages like C++, it is considered good practice to provide accessor methods to manipulate an object's state. For instance, if an object has a member variable named weight, a programmer often writes two functions. One function is used to get the value of weight, and another to set the value—something akin to get_Weight and set_Weight. To provide read-only access, the programmer would forego the get_ method.

Properties in VB.NET are merely a language construct used to provide this frequently used functionality and enforce good programming practice through the language.

Whenever you create a property, VB.NET automatically generates a get_ and set_ method behind the scenes. Essentially, a property is nothing more than language convenience. Check it out with ILDASM.

Properties can be ReadOnly, WriteOnly, or both. Read-only properties contain a Get block that allows retrieval of a value, but prevents it from being changed:

Public ReadOnly Property Age( ) As Double
    Get
        Return Me.age
    End Get
End Property

Write-only properties use a Set block, which allows values to be initialized but not retrieved:

Public WriteOnly Property Age( ) As Double
    Set 
        'age is a Private member variable           
        Me.age = value
    End Set
End Property

Properties that provide both read and write access must specify only an access modifier:

Public Property Age( ) As Double Get Return ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required