// File csValVsRef.cs.txt // Single cSharp Console Project Solution "csValVsRef" // Demonstrating the behavior of Value Vs. Ref Types using System; namespace csValVsRef { public class ClassLibrary { private int num; public int Number { get { return num; } set { num = value; } } } class ValVsRef { static void Main(string[] args) { Console.WriteLine("Comparing Integers..."); CompareIntegers(); Console.WriteLine("Comparing Objects...."); CompareClassObjects(); Console.Write("Press Enter to Exit... "); Console.ReadLine(); } public static void Show(object Arg1, object Arg2) { Console.WriteLine(""); Console.WriteLine("------------------------"); Console.WriteLine("Arg1: " + Arg1.ToString()); Console.WriteLine("Arg2: " + Arg2.ToString()); Console.WriteLine("------------------------"); Console.ReadLine(); } public static void CompareIntegers() { int int1; int int2; Console.WriteLine("int1 = 1"); int1 = 1; Console.WriteLine("int2 = int1"); int2 = int1; Show(int1, int2); Console.WriteLine("int2 = 2"); int2 = 2; Show(int1, int2); } public static void CompareClassObjects() { ClassLibrary obj1; obj1 = new ClassLibrary(); ClassLibrary obj2 = new ClassLibrary(); Console.WriteLine("obj1.Number = 1"); obj1.Number = 1; Show(obj1.Number, obj2.Number); Console.WriteLine("obj2 = obj1"); obj2 = obj1; Show(obj1.Number, obj2.Number); Console.WriteLine("obj2.Number = 2"); obj2.Number = 2; Show(obj1.Number, obj2.Number); } } }