C#: .NET: Constructor

.NET Array Collections File String Async Cast DataTable DateTime Dictionary Enum Exception For Foreach IEnumerable If IndexOf Lambda LINQ List Parse Path Process Property Regex Replace Sort Split StringBuilder Substring Switch Tuple


Base is used in constructors. A derived class constructor is required to call the constructor from its base class. When the default constructor isn't present, the custom base constructor can, with base, be referenced.

Note:In a class, we can also access fields and other members (like methods) with the "base" and "this" keywords.

Base vs. This



The program uses a base class and a derived class. Both of the classes use a non-default, parameterful constructor. The derived class must use a base constructor initializer, with the base keyword, in its constructor declaration.

Tip:This initializer is specified by adding a colon and the base keyword after the derived constructor parameter list.

Based on:

.NET 4.5

C# program that uses base constructor initializer

using System;

public class A // This is the base class.
    public A(int value)
	// Executes some code in the constructor.
	Console.WriteLine("Base constructor A()");

public class B : A // This class derives from the previous class.
    public B(int value)
	: base(value)
	// The base constructor is called first.
	// ... Then this code is executed.
	Console.WriteLine("Derived constructor B()");

class Program
    static void Main()
	// Create a new instance of class A, which is the base class.
	// ... Then create an instance of B, which executes the base constructor.
	A a = new A(0);
	B b = new B(1);


Base constructor A()
Base constructor A()
Derived constructor B()
This section provides information

In this program, class A and class B both introduce constructors. Class A is the parent or base class for class B, which is referred to as the derived class. The "B: A" syntax indicates that class B derives from class A.

Explanation:In the example, the constructor in class B calls into the constructor of class A using base initializer syntax.


We specify that the base class constructor is called upon entry to the derived constructor. In the B constructor, we use base initializer syntax. The compiler inserts the constructor call at the start of the method body.

Note:For non-default constructors, you must specify the base constructor initializer with valid arguments.

This initializer


There is another keyword that can be used in a constructor initializer in the same way as base(). You can use this() with the argument list of another constructor declaration in the same exact type.

Tip:This does the same thing conceptually as base but for the same class, not the parent class.

Constructor Initializer


C# programming language

We explored base constructor initializer syntax. We specify the base initializer when deriving from types with non-default constructors. In this initializer, we can access all parameters.

And:The base initializer is similar in syntax and concept as the this-initializer in constructors.