Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
base
Collapse the table of content
Expand the table of content

base

The base keyword is used to access members of the base class from within a derived class:

  • Call a method on the base class that has been overridden by another method.
  • Specify which base-class constructor should be called when creating instances of the derived class.

A base class access is permitted only in a constructor, an instance method, or an instance property accessor.

It is an error to use the base keyword from within a static method.

Example

In this example, both the base class, Person, and the derived class, Employee, have a method named Getinfo. By using the base keyword, it is possible to call the Getinfo method on the base class, from within the derived class.

// keywords_base.cs
// Accessing base class members
using System;
   public class Person 
   {
      protected string ssn = "444-55-6666";
      protected string name = "John L. Malgraine";

      public virtual void GetInfo() 
      {
         Console.WriteLine("Name: {0}", name);
         Console.WriteLine("SSN: {0}", ssn);
      }
   }
   class Employee: Person 
   {
      public string id = "ABC567EFG";

      public override void GetInfo() 
      {
         // Calling the base class GetInfo method:
         base.GetInfo();
         Console.WriteLine("Employee ID: {0}", id);
      }
   }

class TestClass {
   public static void Main() 
   {
      Employee E = new Employee();
      E.GetInfo();
   }
}

Output

Name: John L. Malgraine
SSN: 444-55-6666
Employee ID: ABC567EFG

For additional examples, see new, virtual, and override.

Example

This example shows how to specify the base-class constructor called when creating instances of a derived class.

// keywords_base2.cs
using System;
public class MyBase
{
   int num;

   public MyBase() 
   {
      Console.WriteLine("in MyBase()");
   }

   public MyBase(int i )
   {
      num = i;
      Console.WriteLine("in MyBase(int i)");
   }

   public int GetNum()
   {
      return num;
   }
}

public class MyDerived: MyBase
{
   // This constructor will call MyBase.MyBase()
   public MyDerived() : base()
   {
   }

    // This constructor will call MyBase.MyBase(int i)
   public MyDerived(int i) : base(i)
   {
   }

   public static void Main() 
   {
      MyDerived md = new MyDerived();
      MyDerived md1 = new MyDerived(1);
   }
}

Output

in MyBase()
in MyBase(int i)

See Also

C# Keywords | this

Show:
© 2015 Microsoft