Field initialization

The initial value of a field, whether it be a static field or an instance field, is the default value (12.2) of the field's type. It is not possible to observe the value of a field before this default initialization has occurred, and a field is thus never "uninitialized". [Example: The example using System; class Test { static bool b; int i; static void Main() { Test t = new Test(); Console.WriteLine("b = {0}, i = {1}", b, t.i); } } produces the output b = False, i = 0 because b and i are both automatically initialized to default values. end example]