Home   Cover Cover Cover Cover
 

Parameters

ref parameters:

+ One can use them to write methods with transient parameters, which are values that are passed to a method, modified by the method, and returned to the caller. If the same effect were to be achieved with functions one would have to use both an input parameter and a function return value.
+ One can use them to write methods with multiple transient parameters. With functions, one can have only a single return value.
+ The value of a ref parameter is not copied to the corresponding formal parameter upon method call, but only a reference to the actual parameter is passed. For large parameter objects this is more efficient than passing the values of the objects.
- ref parameters can lead to side effects, because a formal ref parameter is an alias of the corresponding actual ref parameter. If the method modifies the formal ref parameter, the corresponding actual parameter value changes as well.

out parameters:

+ One can use them to write methods with multiple output parameters. With functions, one can have only a single return value.
+ Like ref parameters, out parameters are passed by reference. This means that only a reference to the actual parameter is passed and not its value. For large parameter objects this is more efficient than returning the value as a function result.
+ The compiler makes sure that the invoked method assigns avlues to all its out parameters.
- out parameters can lead to side effects, because a formal out parameter is an alias of the corresponding actual out parameter. If the method modifies the formal out parameter, the corresponding actual parameter value changes as well.

Function return values:

+ There are no side effects.
+ The return value can be ignored by the caller. However, this can also be regarded as a disadvantage.
- A function method can have only a single return value.