using System;
class ReferenceAndOutputParameters
{
public void aMethod()
{
int y = 5;
int z;
Console.WriteLine( "Original value of y: {0}", y );
Console.WriteLine( "Original value of z: uninitialized\n" );
SquareRef( ref y );
SquareOut( out z );
Console.WriteLine( "Value of y after SquareRef: {0}", y );
Console.WriteLine( "Value of z after SquareOut: {0}\n", z );
Square( y );
Square( z );
Console.WriteLine( "Value of y after Square: {0}", y );
Console.WriteLine( "Value of z after Square: {0}", z );
}
void SquareRef( ref int x )
{
x = x * x;
}
void SquareOut( out int x )
{
x = 6;
x = x * x;
}
void Square( int x )
{
x = x * x;
}
}
class ReferenceAndOutputParamtersTest
{
static void Main( string[] args )
{
ReferenceAndOutputParameters test = new ReferenceAndOutputParameters();
test.aMethod();
}
}