| Sub Function byval byref in Console Application and Class Library
 
Output = 3
Module Module1
    Dim a As Integer = 1
    Sub Main()
        Dim a As Integer = 2
        Console.WriteLine(a + Module1.a)
        Console.ReadLine()
    End Sub
End Module
Output = 5
Module Module1
    Sub Main()
        oho()
        Console.ReadLine()
    End Sub
    Sub oho()
        Console.WriteLine(5)
    End Sub
End Module
Output = 1
Module Module1
    Sub Main()
        Dim a As Integer = 1
        oho(a)
        Console.ReadLine()
    End Sub
    Sub oho(ByVal b As Integer)
        Console.WriteLine(b)
    End Sub
End Module
Output = 2
Module Module1
    Sub Main()
        Dim a As Integer = 1
        burin(a)
        Console.WriteLine(a)
        Console.ReadLine()
    End Sub
    Sub burin(ByRef b As Integer)
        b = 2
    End Sub
End Module
Output = 1001
Module Module1
    Sub Main()
        Dim a As Integer = 1
        Dim b As Integer = 10
        burin(a, b)
        Console.WriteLine(a + b)
        Console.ReadLine()
    End Sub
    Sub burin(ByVal x As Integer, ByRef y As Integer)
        x = 100 : y = 1000
    End Sub
End Module
Output = 5
Module Module1
    Sub Main()
        Console.WriteLine(burin())
        Console.ReadLine()
    End Sub
    Function burin() As Integer
        burin = 5
    End Function
End Module
Output = 10
Module Module1
    Sub Main()
        Console.WriteLine(burin(5))
        Console.ReadLine()
    End Sub
    Function burin(ByRef x As Integer) As Integer
        burin = x * 2
    End Function
End Module
Output = 4
Module Module1
    Sub Main()
        Dim a As Integer = 1
        Console.WriteLine(burin(a) + a)
        Console.ReadLine()
    End Sub
    Function burin(ByRef x As Integer) As Integer
        burin = x * 2 : x = burin
    End Function
End Module
Output = 56
Module Module1
    Sub Main()
        sub1()
        Console.Write(func1())
    End Sub
    Sub sub1()
        Console.Write(5)
    End Sub
    Function func1() As Integer
        func1 = 6
    End Function
End Module
Output = 16
Module Module1
    Dim a As Integer = 1
    Sub Main()
        sub1(a, a)
        Console.WriteLine(func1(a))
    End Sub
    Sub sub1(ByRef x As Integer, ByRef y As Integer)
        a += x : x += a : y += a
    End Sub
    Function func1(ByRef x As Integer) As Integer
        func1 = x + x
    End Function
End Module
Output = 4
' Application type = windows application
' startup = Sub Main 
Public Class Class1
    Shared a As Integer = 1
    Shared Sub main()
        sub1(a, a)
        MsgBox(func1(a))
    End Sub
    Shared Sub sub1(ByVal x As Integer, ByVal y As Integer)
        a = x + y
    End Sub
    Shared Function func1(ByRef x As Integer) As Integer
        func1 = x + x
    End Function
End Class
Output = 4
' Application type = windows application
' startup = Sub Main
' Class1 and Class2 is in same file
Public Class Class1
    Shared a As Integer = 1
    Shared Sub main()
        Class2.sub1(a, a)
        MsgBox(Class2.func1(a))
    End Sub
End Class
Public Class Class2
    Shared Sub sub1(ByRef x As Integer, ByVal y As Integer)
        x = x + y
    End Sub
    Shared Function func1(ByRef x As Integer) As Integer
        func1 = x + x
    End Function
End Class
 |