Object parameter passed by Value and by Reference : ByVal « Language Basics « VB.Net





Object parameter passed by Value and by Reference

Object parameter passed by Value and by Reference
Imports System

public class MainClass
   Shared Sub Main()
        Dim A As New MyObject()
        Dim B As MyObject = A
        A.X = 1
        Console.WriteLine("Initial state")
        Console.WriteLine("Are A and B the same? " + (A Is B).ToString())
        Console.WriteLine("A.x: " + A.X.ToString() + " B.x " + B.X.ToString())
        FunctionPassObjectByReference1(B)
        Console.WriteLine("After FobjByRef1")
        Console.WriteLine("Are A and B the same? " + (A Is B).ToString())
        Console.WriteLine("A.x: " + A.X.ToString() + " B.x " + B.X.ToString())
        A.X = 1
        B = A
        FunctionPassObjectByReference2(B)
        Console.WriteLine("After FobjByRef2")
        Console.WriteLine("Are A and B the same? " + (A Is B).ToString())
        Console.WriteLine("A.x: " + A.X.ToString() + " B.x " + B.X.ToString())
        A.X = 1
        B = A
        FunctionPassObjectByValue1(B)
        Console.WriteLine("After FobjByVal1")
        Console.WriteLine("Are A and B the same? " + (A Is B).ToString())
        Console.WriteLine("A.x: " + A.X.ToString() + " B.x " + B.X.ToString())
        A.X = 1
        B = A
        FunctionPassObjectByValue2(B)
        Console.WriteLine("After FobjByVal2")
        Console.WriteLine("Are A and B the same? " + (A Is B).ToString())
        Console.WriteLine("A.x: " + A.X.ToString() + " B.x " + B.X.ToString())
        
   End Sub

   Shared Public Sub FunctionPassObjectByReference1(ByRef Y As MyObject)
        Y.X = 5
    End Sub

   Shared Public Sub FunctionPassObjectByReference2(ByRef Y As MyObject)
        Y = New MyObject()
        Y.X = 5
    End Sub

   Shared Public Sub FunctionPassObjectByValue1(ByVal Y As MyObject)
        Y.X = 5
    End Sub

   Shared Public Sub FunctionPassObjectByValue2(ByVal Y As MyObject)
        Y = New MyObject()
        Y.X = 5
    End Sub

    Class MyObject
        Public X As Integer
    End Class

End Class


           
       










Related examples in the same category

1.Structure parameter passed by Value and by Reference
2.String parameter passed by Value and by ReferenceString parameter passed by Value and by Reference
3.Array parameter passed by Value and by ReferenceArray parameter passed by Value and by Reference
4.Function with pass by value ParameterFunction with pass by value Parameter
5.Passing arrays and individual array elements to proceduresPassing arrays and individual array elements to procedures
6.Modify Array Element By Value Modify Array Element By Value
7.Array passed By ValueArray passed By Value
8.Squares three values ByVal and ByRef, displays resultsSquares three values ByVal and ByRef, displays results