Search:
Locator+ Code:
FTPOnline Channels Conferences Resources Hot Topics Partner Sites Magazines About FTP RSS 2.0 Feed
 

Replace Global Variables With Shared Properties
Visual Basic .NET gives you a more object-oriented way to store global data.
by Deborah Kurata

VSLive! Orlando, September 17, 2002

Note: Deborah Kurata is presenting "Best Practices for OOP in VB.NET" at VBITS Orlando, Tuesday, September 17. This tip is from that session.

We know we are never supposed to use global variables, but there are times when you need one. You might want to store the user's name as the last updated user in every record the user changes, so after the user logs in you want to store the user's name "somewhere." Or you might want to read a connection string from a file and store it "somewhere" so you can use it whenever you need to connect to the database. That "somewhere" used to be a global variable—but with Visual Basic .NET, there is a more object-oriented way to store global data.

With Visual Basic .NET, you can declare properties or methods to be global using the Shared keyword. Shared indicates that the property or method is shared among all instances of the class.

For example, this code creates a shared UserName property in a User class:

 Public Class User

   Private Shared m_sUserName As String

    Public Shared Property UserName() As String
        Get
            Return m_sUserName
        End Get
        Set(ByVal Value As String)
            m_sUserName = Value
        End Set
    End Property

 End Class

Any code in the application can set this property without creating an instance of the class. For example, after validating the login, the Login form could set this property based on the user's login entry:

User.UserName = txtUserName.Text

Notice how the class name was used to reference the property. You don't need to create an instance of the class to access any shared properties or methods.

Because no instance was created, any code in the application can access the property and it will retain its value. For example, use this code to display the name in a messagebox:

MessageBox.Show("Thank you " & User.UserName)

Using the Shared keyword gives you an easy way to store data that is needed globally throughout your application. I enjoyed having Shared this tip with you!

About the Author
Deborah Kurata is a consultant and cofounder of InStep Technologies, a consulting group that designs and develops object-oriented and component-based Windows applications. Reach Deborah at deborahk@insteptech.com.