O'Reilly logo

Applied Microsoft® .NET Framework Programming by Jeffrey Richter

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Boxing and Unboxing Value Types

Value types are lighter weight than reference types because they are not allocated in the managed heap, not garbage collected, and not referred to by pointers. However, in many cases, you must get a reference to an instance of a value type. For example, let’s say that you wanted to create an ArrayList object (a type defined in the System.Collections namespace) to hold a set of Point structures. The code might look like this:

// Declare a value type. struct Point { public Int32 x, y; } class App { static void Main() { ArrayList a = new ArrayList(); Point p; // Allocate a Point (not in the heap). for (Int32 i = 0; i < 10; i++) { p.x = p.y = i; // Initialize the members in the value type. a.Add(p); // Box the value ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required