Mega Code Archive

 
Categories / C# / Class Interface
 

C# always creates a structure instance as a value-type variable even using the new operator

/* C# Programming Tips & Techniques by Charles Wright, Kris Jamsa Publisher: Osborne/McGraw-Hill (December 28, 2001) ISBN: 0072193794 */ // //  ValType.cs -- Demonstrates that C# always creates a structure instance as //                a value-type variable even using the new operator. //                Compile this program using the following command line: //                    C:>csc ValType.cs // namespace nsValType {     using System;     public struct POINT     {         public int  cx;         public int  cy;     }     public class ValType     {         static public void Main()         {             POINT point1;             point1.cx = 42;             point1.cy = 56;             ModifyPoint (point1);             Console.WriteLine ("In Main() point2 = ({0}, {1})", point1.cx, point1.cy);             POINT point2 = new POINT ();                          // point2.cx = 42;             // point2.cy = 56;                          Console.WriteLine ();             ModifyPoint (point2);             Console.WriteLine ("In Main() point2 = ({0}, {1})", point2.cx, point2.cy);         }         static public void ModifyPoint (POINT pt)         {             pt.cx *= 2;             pt.cy *= 2;             Console.WriteLine ("In ModifyPoint() pt = ({0}, {1})", pt.cx, pt.cy);         }     } }