G
Guest
Hi
What I have learned is that a variable is just a reference when dealing with Objects.
Are you supposed to use ByVal or ByRef in functions? They produce the same result or have I missed something?
Regards
/Niklas
Public Class Main
Shared Sub Main()
Dim testPropObj As New MyPropertObject
testPropObj.MyInt = 1
Console.WriteLine("Org: testPropObj.MyInt = " & testPropObj.MyInt)
ChangeObjectByVal(testPropObj)
Console.WriteLine("ByVal: testPropObj = " & testPropObj.MyInt)
ChangeObjectByRef(testPropObj)
Console.WriteLine("ByRef: testPropObj = " & testPropObj.MyInt)
Console.WriteLine("Press Enter to exit...")
Console.ReadLine()
End Sub
Public Shared Sub ChangeObjectByVal(ByVal myObject As MyPropertObject)
myObject.MyInt = 5
End Sub
Public Shared Sub ChangeObjectByRef(ByRef myObject As MyPropertObject)
myObject.MyInt = 6
End Sub
End Class
Public Class MyPropertObject
Public MyInt As Integer
End Class
What I have learned is that a variable is just a reference when dealing with Objects.
Are you supposed to use ByVal or ByRef in functions? They produce the same result or have I missed something?
Regards
/Niklas
Public Class Main
Shared Sub Main()
Dim testPropObj As New MyPropertObject
testPropObj.MyInt = 1
Console.WriteLine("Org: testPropObj.MyInt = " & testPropObj.MyInt)
ChangeObjectByVal(testPropObj)
Console.WriteLine("ByVal: testPropObj = " & testPropObj.MyInt)
ChangeObjectByRef(testPropObj)
Console.WriteLine("ByRef: testPropObj = " & testPropObj.MyInt)
Console.WriteLine("Press Enter to exit...")
Console.ReadLine()
End Sub
Public Shared Sub ChangeObjectByVal(ByVal myObject As MyPropertObject)
myObject.MyInt = 5
End Sub
Public Shared Sub ChangeObjectByRef(ByRef myObject As MyPropertObject)
myObject.MyInt = 6
End Sub
End Class
Public Class MyPropertObject
Public MyInt As Integer
End Class