Reference Variable Type

 

SHORT DESCRIPTION

How to create and use a reference variable type

 

LONG DESCRIPTION

You can use the reference variable type to permit a method to change the value of a variable that is passed to it.

 

When the "[ref]" type is associated with an object, it returns a reference to that object. If the reference is used with a method, the method can refer to the object that was passed to it. If the object is changed within the method, the changes appear as a change in the value of the variable when control passes back to the calling method.

 

To use referencing, the parameter must be a reference variable. If it is not, an InvalidArgument exception is thrown.

 

The parameters used in method invocations must match the type required by the methods. 

 

Examples:

 

PS> function swap([ref]$a,[ref]$b)

>> {

>> $a.value,$b.value = $b.value,$a.value

>> }

 

PS> $a = 1

PS> $b = 10

PS> $a,$b

1

10

PS> swap ([ref]$a) ([ref]$b)

PS> $a,$b

10

1

 

PS C:\ps-test> function double

>> {

>> param ([ref]$x) $x.value = $x.value * 2

>> }

 

PS C:> $number = 8

PS C:> $number

8

PS C> double ([ref]$number)

PS C> $number

16

 

The variable must be a reference variable.

 

PS C:\ps-test> double $number

double : Reference type is expected in argument.

At line:1 char:7

+ double  <<<< $number

 

SEE ALSO

For information about variables, enter the following command at the PowerShell command prompt:

 

help about_shell_variable

 

For information about environment variables, enter the following command at the PowerShell command prompt:

 

help about_environment_variable

 

For information about function declarations, enter the following command at the PowerShell command prompt:

 

help about_function

 

For information about script blocks, enter the following command at the PowerShell command prompt:

 

help about_Script_block