Creating Structures Without New
Because loc1 is a
structure (not a class), it is
created on the stack. Thus, in Example 7-1, when the
New
keyword is called:
Dim loc1 As New Location(200, 300)
the resulting Location object is created on the stack.
The New
keyword calls the Location constructor.
However, unlike with a class, it is possible to create a structure
without using New
at all. This is consistent with
how built-in type variables (such as Integer) are defined and is
illustrated in Example 7-2.
Warning
Creating structures without the keyword New
brings
little advantage and can create programs that are harder to
understand, more error prone, and more difficult to maintain! Proceed
at your own risk.
Example 7-2. Creating a structure without New
Option Strict On Imports System Namespace StructureDemonstration ' declare a structure named Location Public Structure Location ' the Structure has private data Private myXVal As Integer Private myYVal As Integer Public Sub New( _ ByVal xCoordinate As Integer, ByVal yCoordinate As Integer) myXVal = xCoordinate myYVal = yCoordinate End Sub 'New ' property Public Property XVal( ) As Integer Get Return myXVal End Get Set(ByVal Value As Integer) myXVal = Value End Set End Property Public Property YVal( ) As Integer Get Return myYVal End Get Set(ByVal Value As Integer) myYVal = Value End Set End Property ' display the structure as a String Public Overrides Function ToString( ) As String Return String.Format("{0}, {1}", XVal, YVal) End Function ...
Get Programming Visual Basic .NET, Second Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.