April 2003
Intermediate to advanced
560 pages
14h 4m
English
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.
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 ...