Home
C#
base Keyword
Updated Apr 17, 2025
Dot Net Perls
Base. This keyword is used in constructors (in constructor initializers). A derived class constructor is required to call the constructor from its base class.
Base, notes. When the default constructor isn't present, the custom base constructor can (with base) be referenced. This can eliminate duplicated code.
class
Base class example. The program uses a base class and a derived class. Both of the classes use a non-default, parameterful constructor.
Note The derived class must use a base constructor initializer, with the base keyword, in its constructor declaration.
Info Class A and class B have constructors. Class A is the parent or base class for class B, which is referred to as the derived class.
Detail The "B: A" syntax indicates that class B derives from class A. We use a colon character to indicate inheritance.
Here In the example, the constructor in class B calls into the constructor of class A using base initializer syntax.
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. // ... B executes the base constructor. A a = new A(0); B b = new B(1); } }
Base constructor A() Base constructor A() Derived constructor B()
Base versus this. Let us compare base and this. In a derived class, the base and this keywords can reference members. These keywords eliminate confusion as to which member we want.
Info When we have a derived class, we can use a "base" expression to directly access the base class.
Here The program accesses first the base _value, which equals 6. And then it gets the this _value, which is 7.
using System; class Net { public int _value = 6; } class Perl : Net { public new int _value = 7; public void Write() { // Show difference between base and this. Console.WriteLine(base._value); Console.WriteLine(this._value); } } class Program { static void Main() { Perl perl = new Perl(); perl.Write(); } }
6 7
Notes, ambiguous. We use these keywords to resolve ambiguous things. If the base and this keywords were removed, the compiler would not know the difference between _value fields.
Detail The "base" and "this" keywords are also used in constructor initializers. These make constructors easier to write.
Thus Base and this are needed for navigating the class hierarchy. With them, we access members from a targeted class.
This initializer. There is another keyword that can be used in a constructor initializer. You can use this() with the argument list of another constructor declaration in the same type.
Constructor
Tip This does the same thing conceptually as base but for the same class, not the parent class.
The base initializer is similar to the this-initializer in constructors. We can specify the base initializer when deriving from types with non-default constructors.
Dot Net Perls is a collection of pages with code examples, which are updated to stay current. Programming is an art, and it can be learned from examples.
Donate to this site to help offset the costs of running the server. Sites like this will cease to exist if there is no financial support for them.
Sam Allen is passionate about computer languages, and he maintains 100% of the material available on this website. He hopes it makes the world a nicer place.
This page was last updated on Apr 17, 2025 (edit).
Home
Changes
© 2007-2025 Sam Allen