public static void Main()
var sample1 = new Sample(1);
Console.WriteLine("Created {0}", sample1);
Console.WriteLine("Resulting {0}", sample1);
Console.WriteLine("NOW USING REF");
var sample2 = new Sample(1);
Console.WriteLine("Created {0}", sample2);
Console.WriteLine("Resulting {0}", sample2);
public static void WithoutRef(Sample sample)
Console.WriteLine("Got {0}", sample);
Console.WriteLine("Changed to {0}", sample);
Console.WriteLine("Replaced instance to {0}", sample);
public static void WithRef(ref Sample sample)
Console.WriteLine("Got {0}", sample);
Console.WriteLine("Changed to {0}", sample);
Console.WriteLine("Replaced instance to {0}", sample);
public int Value { get; set; }
public override string ToString()
return string.Format("Sample({0})", this.Value);