base关键字用于从派生类中访问基类的成员“

1)调用基类中已被派生类重写的方法:

  1. class Program  
  2.     {  
  3.         static void Main(string[] args)  
  4.         {  
  5.             Employee e = new Employee();  
  6.             e.GetInfo();  
  7.             Console.ReadLine();  
  8.         }  
  9.  
  10.         public class  Person  
  11.         {  
  12.             protected string strName = "张三";  
  13.               
  14.             /// <summary>  
  15.             /// 虚函数  
  16.             /// </summary>  
  17.             public virtual void GetInfo()  
  18.             {  
  19.                 Console.WriteLine("Name:{0}",strName);  
  20.             }  
  21.         }  
  22.  
  23.         class Employee : Person  
  24.         {  
  25.             public string id = "123";  
  26.             /// <summary>  
  27.             /// base用于调用基类中被重写的方法  
  28.             /// </summary>  
  29.             public override void GetInfo()  
  30.             {  
  31.                  base.GetInfo();  
  32.                  Console.WriteLine("Employee ID :{0}",id);  
  33.             }  
  34.         }  
  35.     } 

2)指定派生类实例时应调用的基类构造函数:

  1. class Ex02Constructor : Ex01Constructor  
  2.     {  
  3.         public Ex02Constructor()  
  4.         {  
  5.             Console.WriteLine("调用02无参构造");  
  6.         }  
  7.         /// <summary>  
  8.         /// base用于指明调用基类的有一个参数的构造  
  9.         /// </summary>  
  10.         /// <param name="strParameter"></param>  
  11.         public Ex02Constructor(string strParameter)  
  12.             : base("123123")  
  13.         {  
  14.             Console.WriteLine("调用02有参构造");  
  15.         }  
  16.     } 

注:静态方法中不能使用base关键字