using System;
namespace Debugging
{
	class Tester
	{
		public void Run()
		{
			int myInt = 42;
			float myFloat = 9.685f;
			System.Console.WriteLine("Przed rozpoczęciem: \n wartość myInt: {0} " +
									 " \n wartość myFloat: {1}", myInt, myFloat);

			// przekazanie wartości przez referencję
			Multiply(ref myInt, ref myFloat);

			System.Console.WriteLine("Po zakończeniu: \n wartość myInt: {0} " +
									 " \n wartość myFloat: {1}", myInt, myFloat);
		}

		private static void Multiply(ref int theInt, ref float theFloat)
		{
			theInt = theInt * 2;
			theFloat = theFloat * 2;

			Divide(ref theInt, ref theFloat);
		}

		private static void Divide(ref int theInt, ref float theFloat)
		{
			theInt = theInt / 3;
			theFloat = theFloat / 3;

			Add(ref theInt, ref theFloat);
		}

		private static void Add(ref int theInt, ref float theFloat)
		{
			theInt = theInt + theInt;
			theFloat = theFloat + theFloat;
		}

		static void Main()
		{
			Tester t = new Tester();
			t.Run();
		}
	}
}

