A parameter declared with an out
modifier is an output parameter.
An output parameter does not create a new storage location. Instead, an output parameter represents the same storage location as the variable given as the argument in the function member invocation. Thus, the value of an output parameter is always the same as the underlying variable.
The following definite assignment rules apply to output parameters. Note the different rules for reference parameters described in §5.1.5.
Within a constructor of a struct type, the this
keyword behaves exactly as an output parameter of the struct type (§7.5.7).