The common language runtime (CLR) ensures that fields (as well as other kinds of variables) get zero-initialized when their memory is allocated. In practice, this means that reference typed fields will have a default value of null. For value types, all the object’s fields will recursively get zero-initialized. Primitive value types receive their default values; for example, an
int will be set to 0. Consider the following example:
Creation of a new
Basis instance will result in both direction fields to be set to
null. For each new
Vector instance, we’ll receive zero-initialized
Points in both
_end. Such a zero-initialized ...