What is the difference between ByRef and ByVal? –QTP Interview question

ByRef and ByVal are two ways to pass arguments to a function or subroutine in VBScript. Understanding the difference between two is simple.

Let us start with ByVal. Suppose a function or subroutine has an argument which accepts a variable with byval,suppose a variable x is passed as argument to the function, The value of variable does not change once the function is executed successfully.

Now let us move to ByRef. ByRef means passing value as a reference. Suppose a function or subroutine has an argument which accepts a variable with byref, suppose variable x is passed as argument to the function, The value of variable changes once the function is executed successfully.

Writing the below function in a notepad and running as a vbscript will help to differentiate ByVal and ByRef


By Ref Code:


Dim x
x= 5
call squareofNumber(x)
msgbox x
Function squareofNumber(ByRef varx)
        varx = varx*varx
        msgbox varx
End function


ByVal Code:


Dim x
x= 5
call squareofNumber(x)
msgbox x
Function squareofNumber(Byval varx)
        varx = varx*varx
        msgbox varx
End function
 By default, if we do not provide ByVal or Byref, it takes the argument as ByRef.


No comments:

Post a Comment