Initializing Fields

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 recursively get zero-initialized. Primitive value types receive their default values; for example, an int will be set to 0. Consider the following example:

class Basis{    private Vector _direction1;    private Vector _direction2;}class Vector{    private Point _start;    private Point _end;}struct Point{    private int _x;    private int _y;}

Creation of a new Basis instance results in both direction fields to be set to null. For each new Vector instance, ...

Get C# 5.0 Unleashed now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.