CHAPTER 4 CORE C# PROGRAMMING CONSTRUCTS, PART II
Table 4-1. C# Parameter Modifiers
Parameter Modifier
Meaning in Life
(None)
If a parameter is not marked with a parameter modifier, it is assumed to be
passed by value, meaning the called method receives a copy of the original
data.
out
Output parameters must be assigned by the method being called, and
therefore, are passed by reference. If the called method fails to assign
output parameters, you are issued a compiler error.
ref
The value is initially assigned by the caller and may be optionally
reassigned by the called method (as the data is also passed by reference).
No compiler error is generated if the called method fails to assign a ref
parameter.
params
This parameter modifier allows you to send in a variable number of
arguments as a single logical parameter. A method can have only a single
params modifier, and it must be the final parameter of the method. In
reality, you might not need to use the params modifier all too often;
however, be aware that numerous methods within the base class libraries
do make use of this C# language feature.
To illustrate the use of these keywords, create a new Console Application project named
FunWithMethods. Now, let’s walk through the role of each keyword.
The Default by Value Parameter-Passing Behavior
The default manner in which a parameter is sent into a function is by value. Simply put, if you do not
mark an argument with a parameter modifier, a copy of the data is passed into the function. As
explained at the end of this chapter, exactly what is copied will depend on whether the parameter is a
value type or a reference type. For the time being, assume the following method within the Program class
that operates on two numerical data types passed by value:
// Arguments are passed by value by defa V