To pass it by reference.
The value-type variables are not garbage-collected, they just fall off the stack when they fall out of scope, the reference-type objects are picked up by GC when their references go null.
The references go on the stack, while the objects themselves go on the heap.
There's no conversion between 0 and false, as well as any other number and true, like in C/C++.
Structs cannot be inherited.
Structs are passed by value, not by reference.
Struct is stored on the stack, not the heap.
The implementation is hidden, the interface is exposed.
int [ , ] myArray; //declaration
myArray = new int [5, 8]; //actual initialization