C# Base

Base keyword

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.

Keywords

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

Base vs. This

Example

Class

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);
    }
}

Output

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.

Class

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

This keyword

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

Summary

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.


C#: Class: Constructor