TheDeveloperBlog.com

Home | Contact Us

C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML

VB.NET Property Examples

This VB.NET article uses the Property keyword to improve program syntax. A property gets and sets values.

Property. A Property is similar to a Function.

With a getter and a setter, it controls access to a value. This value is called a backing store.

With Get, a property returns a value. With Set it stores a value. We must have both Get and Set unless we specify ReadOnly or WriteOnly on the property.

Get, Set. On the Number property, we provide Get and Set blocks. In Get we return a value—the backing store _count. In Set we receive a parameter and then store it in the _count field.

Types: A property can have any data type. It does not need to be an Integer. It can be a Class.

And: Additional logic can be inserted in either Get or Set. This extra layer of indirection is often used to validate arguments.

Assign: When the value 1 is assigned to the Number property, Set is executed. The _count field stores the value 1.

Access: When the Number property is accessed but not assigned to, Get is executed. The value of the _count field is returned.

Based on:

.NET 4.5

VB.NET program that uses property syntax

Class Example
    Private _count As Integer

    Public Property Number() As Integer
	Get
	    Return _count
	End Get
	Set(ByVal value As Integer)
	    _count = value
	End Set
    End Property
End Class

Module Module1
    Sub Main()
	Dim e As Example = New Example()
	' Set property.
	e.Number = 1
	' Get property.
	Console.WriteLine(e.Number)
    End Sub
End Module

Output

1

Requirements. A property must have both Get and Set members. It is possible to use the ReadOnly or WriteOnly keywords to eliminate this requirement.

ReadOnly. Some properties are not meant to be assigned. For example, "Count" on collections is not mutable. The ReadOnly modifier changes the Property type to only have a Get method.

Count: The Count() property returns a constant Integer. But Get could perform any calculation or return the value of a field.

Caution: If we try to assign a value to Count, we get this error: "Property Count is ReadOnly." So don't do that.

VB.NET program that uses ReadOnly Property

Class Example
    Public ReadOnly Property Count() As Integer
	Get
	    Return 500
	End Get
    End Property
End Class

Module Module1
    Sub Main()
	Dim e As Example = New Example()
	Console.WriteLine(e.Count)
    End Sub
End Module

Output

500

WriteOnly. Here we use the WriteOnly keyword on a property. WriteOnly means that a Property has only a Set() method and no Get method. In Main we create and assign to the Id property.

Tip: In program design, WriteOnly properties may be confusing. Often a method is a clearer way to set values.

VB.NET program that uses WriteOnly keyword

Class Example
    Dim _id As Integer

    Public WriteOnly Property Id
	Set(value)
	    ' Sets the field from an external call.
	    _id = value
	End Set
    End Property

    Public Sub Display()
	Console.WriteLine(_id)
    End Sub
End Class

Module Module1
    Sub Main()
	' Create Example and assign Id.
	Dim e As Example = New Example
	e.Id = 100
	e.Display()
    End Sub
End Module

Output

100

Automatic. Auto-implemented properties use a shorter syntax form. With them, we do not specify the Get or Set methods. We just the Property keyword and the declaration statement.

Name: This is a String property. We make it Public. It contains the name of the Dog objects created.

Strings

Weight: This contains the weight of the dog. We can assign it, but it has a default value of 10.

Program, auto-implemented properties: VB.NET

Class Dog
    Public Property Name As String
    Public Property Weight As Integer = 10
End Class

Module Module1

    Sub Main()
	' Use automatically-implemented properties.
	Dim dog As Dog = New Dog()
	dog.Name = "Old Yeller"
	dog.Weight = 50

	' Print values.
	Console.WriteLine(dog.Name)
	Console.WriteLine(dog.Weight)
    End Sub

End Module

Output

Old Yeller
50

Limitations. The automatic property syntax in VB.NET is limited. We cannot use this syntax form if we want to insert code in the getter or setter. We must expand the property to do this.

However, there are situations in which you cannot use an auto-implemented property and must instead use standard, or expanded, property syntax.

Auto-Implemented Properties: MSDN

Performance, methods. Properties are not magic. Instead they are implemented in the IL by generated methods. These have the property name prefixed with "get_" or "set_."

IL

Note: Properties can be inlined by the JIT. For setters and getters, a property will not normally cause any performance loss.

Insert. The Visual Studio editor provides some shortcuts for inserting properties. Try typing "pro" and pressing tab twice. Some code for a property will appear.

Tip: To change the fields, please tab to them. Then enter the desired identifier or type.

A summary. Properties simplify syntax of VB.NET programs. And they help the language enforce consistency. We avoid writing Get() and Set() methods. Instead we use properties.


Related Links

Adjectives Ado Ai Android Angular Antonyms Apache Articles Asp Autocad Automata Aws Azure Basic Binary Bitcoin Blockchain C Cassandra Change Coa Computer Control Cpp Create Creating C-Sharp Cyber Daa Data Dbms Deletion Devops Difference Discrete Es6 Ethical Examples Features Firebase Flutter Fs Git Go Hbase History Hive Hiveql How Html Idioms Insertion Installing Ios Java Joomla Js Kafka Kali Laravel Logical Machine Matlab Matrix Mongodb Mysql One Opencv Oracle Ordering Os Pandas Php Pig Pl Postgresql Powershell Prepositions Program Python React Ruby Scala Selecting Selenium Sentence Seo Sharepoint Software Spellings Spotting Spring Sql Sqlite Sqoop Svn Swift Synonyms Talend Testng Types Uml Unity Vbnet Verbal Webdriver What Wpf