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






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

1.Object parameter passed by Value and by ReferenceObject 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