Export (0) Print
Expand All

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:
© 2014 Microsoft