【 tulaoshi.com - 编程语言 】
                             
                            base 
base 关键字用于从派生类中访问基类的成员:  
调用基类上已被其他方法重写的方法。  
指定创建派生类实例时应调用的基类构造函数。  
基类访问只能在构造函数、实例方法或实例属性访问器中进行。  
示例: 
在派生类中调用基类方法。  
// base 关键字 
// 访问基类成员 
using System; 
public class BaseClass 
{ 
    protected string _className = "BaseClass"; 
    public virtual void PrintName() 
    { 
        Console.WriteLine("Class Name: {0}", _className); 
    } 
} 
class DerivedClass : BaseClass 
{ 
    public string _className = "DerivedClass"; 
    public override void PrintName() 
    { 
        Console.Write("The BaseClass Name is {0}"); 
        //调用基类方法 
        base.PrintName(); 
        Console.WriteLine("This DerivedClass is {0}", _className); 
    } 
} 
class TestApp 
{ 
    public static void Main() 
    { 
        DerivedClass dc = new DerivedClass(); 
        dc.PrintName(); 
    } 
} 
/**//* 
控制台输出: 
The BaseClass Name is BaseClass 
This DerivedClass is DerivedClass 
*/ 
在派生类中调用基类构造函数。  
// keywords_base2.cs 
using System; 
public class BaseClass 
{ 
    int num; 
    public BaseClass() 
    { 
        Console.WriteLine("in BaseClass()"); 
    } 
    public BaseClass(int i) 
    { 
        num = i; 
        Console.WriteLine("in BaseClass(int {0})", num); 
    } 
} 
public class DerivedClass : BaseClass 
{ 
    // 该构造器调用 BaseClass.BaseClass() 
    public DerivedClass() : base() 
    { 
    } 
    // 该构造器调用 BaseClass.BaseClass(int i) 
    public DerivedClass(int i) : base(i) 
    { 
    } 
    static void Main() 
    { 
        DerivedClass dc = new DerivedClass(); 
        DerivedClass dc1 = new DerivedClass(1); 
    } 
} 
/**//* 
控制台输出: 
in BaseClass() 
in BaseClass(1) 
*/ 
注意点 
从静态方法中使用 base 关键字是错误的。  
base 主要用于面向对象开发的对态这方面,在示例2中有体现。  
this 
this 关键字引用类的当前实例。 
以下是 this 的常用用途: 
限定被相似的名称隐藏的成员  
将对象作为参数传递到其他方法  
声明索引器  
示例: 
 综合示例。  
// this 关键字 
// keywords_this.cs 
using System; 
class Employee 
{ 
    private string _name; 
    private int _age; 
    private string[] _arr = new string[5]; 
    public Employee(string name, int age) 
    { 
        // 使用this限定字段,name与age 
        this._name = name; 
        this._age = age; 
    } 
    public string Name 
    { 
        get { return this._name; } 
    } 
    public int Age 
    { 
        get { return this._age; } 
    } 
    // 打印雇员资料 
    public void PrintEmployee() 
    { 
        // 将Employee对象作为参数传递到DoPrint方法 
        Print.DoPrint(this); 
    } 
    // 声明索引器 
    public string this[int param] 
    { 
        get { return _arr[param]; } 
        set { _arr[param] = value; } 
    } 
} 
class Print 
{ 
    public static void DoPrint(Employee e) 
    { 
        Console.WriteLine("Name: {0}nAge: {1}", e.Name, e.Age); 
    } 
} 
class TestApp 
{ 
    static void Main() 
    { 
        Employee E = new Employee("Hunts", 21); 
        E[0] = "Scott"; 
        E[1] = "Leigh"; 
        E[4] = "Kiwis"; 
        E.PrintEmployee(); 
        for(int i=0; i5; i++) 
        { 
            Console.WriteLine("Friends Name: {0}", E[i]); 
        } 
        Console.ReadLine(); 
    } 
} 
/**//* 
控制台输出: 
Name: Hunts 
Age: 21 
Friends Name: Scott 
Friends Name: Leigh 
Friends Name:  
Friends Name:  
Friends Name: Kiwis 
*/