VB.NET ToString

The VB.NET programming language

ToString is often useful in VB.NET programs. It allows us to provide a custom ToString function on a VB.NET class. By using an Overrides ToString function, we specify how an instance renders itself as a String.

Example

Class

To start, this program introduces the Perl class.
This class,
by default,
inherits from the Object class. On the Object class (not shown) there exists an Overridable Function ToString.

Note:The Perl class here provides the implementation that overrides that function.

Thus:When Perl is used as an Object, its custom ToString implementation is still used.

Program that overrides ToString: VB.NET

Module Module1

    Class Perl

	Dim _a As Integer
	Dim _b As Integer

	Public Sub New(ByVal a As Integer, ByVal b As Integer)
	    _a = a
	    _b = b
	End Sub

	Public Overrides Function ToString() As String
	    Return String.Format("[{0}, {1}]", _a, _b)
	End Function

    End Class

    Sub Main()
	Dim p As Perl = New Perl(2, 3)
	Console.WriteLine(p)
    End Sub

End Module

Output

[2, 3]

Console.WriteLine call. When we construct the Perl instance,
its fields are set to 2
and 3. Then, it is passed to the Console.WriteLine subroutine as an Object. In Console.WriteLine, the ToString function is called on that Object.

Note:The Overrides Function ToString implementation shown above is then found, and it is used to format the output.

Console.Write, WriteLine, ReadLine Examples

Discussion

Programming tip

In the VB.NET language,
we see Overridable functions
and Overrides functions. These are semantically equivalent to virtual and override methods in the C# language. They have the same meaning.

Opinion:The term "overridable" may be a clearer description of a virtual function. The term virtual is less obvious.

Function ExampleSub Procedure Examples

Summary

We looked at how you can provide the ToString function in your VB.NET program. This function returns a String. You can use any logic you wish to construct the String. It should use the Overrides modifier.

And:This will cause it to be used as the implementation for less derived type references such as Object.


VB.NET: String