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
Related examples in the same category