An array keeps internal pointers to the objects (implicit in C#), unless
it's an array of reference types. Each pointer has a system-defined length,
which on most systems is four bytes. So this array would take up 40 bytes
plus whatever other header information the Array class stores in memory. If
you assign a value type to one of your myarray elements, the value would be
"boxed", which means a pointer to it would be stored so it could be treated
like a refence type as long as you treat it like an object.
Chris