Mega Code Archive

 
Categories / VB.Net / Language Basics
 

Structure parameter passed by Value and by Reference

Imports System public class MainClass    Shared Sub Main()         Dim A As MyStruct         Dim B As MyStruct         A.X = 1         B = A         Console.WriteLine("Initial state StructTests")         Console.WriteLine("Are A and B the same? " + (A.Equals(B)).ToString())         Console.WriteLine("A.x: " + A.X.ToString() + " B.x " + B.X.ToString())         FunctionPassStructureByReference1(B)         Console.WriteLine("After FunctionPassStructureByReference1")         Console.WriteLine("Are A and B the same? " + (A.Equals(B)).ToString())         Console.WriteLine("A.x: " + A.X.ToString() + " B.x " + B.X.ToString())         A.X = 1         B = A         FunctionPassStructureByReference2(B)         Console.WriteLine("After FunctionPassStructureByReference2")         Console.WriteLine("Are A and B the same? " + (A.Equals(B)).ToString())         Console.WriteLine("A.x: " + A.X.ToString() + " B.x " + B.X.ToString())         A.X = 1         B = A         FunctionPassStructureByValue(B)         Console.WriteLine("After FunctionPassStructureByValue")         Console.WriteLine("Are A and B the same? " + (A.Equals(B)).ToString())         Console.WriteLine("A.x: " + A.X.ToString() + " B.x " + B.X.ToString())         A.X = 1         B = A         FStructByVal2(B)         Console.WriteLine("After FStructByVal2")         Console.WriteLine("Are A and B the same? " + (A.Equals(B)).ToString())         Console.WriteLine("A.x: " + A.X.ToString() + " B.x " + B.X.ToString())             End Sub    Shared Public Sub FunctionPassStructureByReference1(ByRef Y As MyStruct)         Y.X = 5     End Sub    Shared Public Sub FunctionPassStructureByReference2(ByRef Y As MyStruct)         Y = New MyStruct()         Y.X = 5     End Sub    Shared Public Sub FunctionPassStructureByValue(ByVal Y As MyStruct)         Y.X = 5     End Sub    Shared Public Sub FStructByVal2(ByVal Y As MyStruct)         Y = New MyStruct()         Y.X = 5     End Sub     Structure MyStruct         Public X As Integer     End Structure End Class