ECMA-334: 11.1.2 Default constructors

Microsoft .NET Framework, ASP.NET, Visual C# (CSharp, C Sharp, C-Sharp) Developer Training, Visual Studio


Jump to: navigation, search
C# Language Specification
© 2006 ECMA International

11.1.2 Default constructors

All value types implicitly declare a public parameterless instance constructor called the default constructor. The default constructor returns a zero-initialized instance known as the default value for the value type:

  • For all simple-types, the default value is the value produced by a bit pattern of all zeros:
  • For sbyte, byte, short, ushort, int, uint, long, and ulong, the default value is 0.
  • For char, the default value is '\x0000'.
  • For float, the default value is 0.0f.
  • For double, the default value is 0.0d.
  • For decimal, the default value is 0m.
  • For bool, the default value is false.
  • For an enum-type E, the default value is 0.
  • For a struct-type, the default value is the value produced by setting all value type fields to their default value and all reference type fields to null.
  • For a nullable type, the default value is one for which HasValue returns false.

Like any other instance constructor, the default constructor of a value type is invoked using the new operator. [Note: For efficiency reasons, this requirement is not intended to actually have the implementation generate a constructor call. For value types, the default value expression (§14.5.14) produces the same result as using the default constructor. end note] [Example: In the code below, variables i, j and k are all initialized to zero.

class A
{
  void F()
  {
    int i = 0;
    int j = new int();
    int k = default(int);
  }
}

end example]

Because every value type implicitly has a public parameterless instance constructor, it is not possible for a struct type to contain an explicit declaration of a parameterless constructor. A struct type is however permitted to declare parameterized instance constructors (§18.3.8).


Today's Deals: Electronics

Personal tools