using System; public class ObjClass { public int val; } public struct ObjStruct { public int val; } public class Container { public Container() { objClass=new ObjClass(); } public ObjClass objClass; public ObjStruct objStruct; } public class Test { public static void Main() { Container containerA = new Container(); containerA.objClass.val = 3; containerA.objStruct.val = 3; ObjClass objClassB = new ObjClass(); objClassB.val = 5; ObjStruct objStructC; objStructC.val = 5; Console.WriteLine("Step 1"); Console.WriteLine("containerA.objClass.val = " + containerA.objClass.val); Console.WriteLine("containerA.objStruct.val = " + containerA.objStruct.val); Console.WriteLine("objClassB.val = " + objClassB.val); Console.WriteLine("objStructC.val = " + objStructC.val); Console.WriteLine(""); containerA.objClass = objClassB; containerA.objStruct = objStructC; Console.WriteLine("Step 2"); Console.WriteLine("containerA.objClass.val = " + containerA.objClass.val); Console.WriteLine("containerA.objStruct.val = " + containerA.objStruct.val); Console.WriteLine("objClassB.val = " + objClassB.val); Console.WriteLine("objStructC.val = " + objStructC.val); Console.WriteLine(""); objClassB.val = 7; objStructC.val = 7; Console.WriteLine("Step 3"); Console.WriteLine("containerA.objClass.val = " + containerA.objClass.val); Console.WriteLine("containerA.objStruct.val = " + containerA.objStruct.val); Console.WriteLine("objClassB.val = " + objClassB.val); Console.WriteLine("objStructC.val = " + objStructC.val); Console.WriteLine(""); } }