当前位置: 编程技术>.net/c#/asp.net
c#中this关键字与base关键字使用方法
来源: 互联网 发布时间:2014-08-30
本文导语: this关键字引用类的当前实例。 静态成员方法中不能使用this关键字,this关键字只能在实例构造函数、实例方法或实例访问器中使用。 base关键字用于从派生类中访问基类的成员。 指定创建派生类实例时应调用的基类构造函...
this关键字引用类的当前实例。
静态成员方法中不能使用this关键字,this关键字只能在实例构造函数、实例方法或实例访问器中使用。
base关键字用于从派生类中访问基类的成员。
指定创建派生类实例时应调用的基类构造函数;
调用基类上已被其他方法重写的方法。
注意:不能从静态方法中使用base关键字,base关键字只能在实例构造函数、实例方法或实例访问器中使用。
例如:
访问关键字this和base关键字示例;
创建基类Person,包含两个数组成员name和age、一个具有两个参数的构造函数、一个虚函数GetInfo()以显示数据成员name和age的内容;
创建派生类Student,包含一个数据成员studentId,一个具有三个参数的派生类构造函数,并用:base调用基类构造函数、并重写所继承基类的虚方法GetInfo(),调用基类的方法显示name和age的内容。
例子:
代码示例:
namespace ConsoleApplication
{
public class Person //基类、等同于public class Person:Object
{
public string name;
public uint age;
public Person(string name,uint age)//基类的构造函数
{
this.name = name; //this 关键字引用类的当前实例
this.age = age; //this 关键字引用类的当前实例
}
public virtual void GetInfo()
{
Console.WriteLine("Name: {0}",name);
Console.WriteLine("Age:{0}",age);
}
}
public class Student:Person//派生类
{
public string studentId;
//派生类构造函数并用:base调用基类构造函数
public Student(string name,uint age,string studentId):base(name,age)
{
this.studentId = studentId;
}
public override void GetInfo()
{
//调用基类方法
base.GetInfo();
Console.WriteLine("StudentId: {0}",studentId);
}
}
public class Program
{
static void Main(string[] args)
{
Student objstudent=new Student("jeamsluu",99,"20140101011");
objstudent.GetInfo();
Console.ReadKey();
}
}
}
{
public class Person //基类、等同于public class Person:Object
{
public string name;
public uint age;
public Person(string name,uint age)//基类的构造函数
{
this.name = name; //this 关键字引用类的当前实例
this.age = age; //this 关键字引用类的当前实例
}
public virtual void GetInfo()
{
Console.WriteLine("Name: {0}",name);
Console.WriteLine("Age:{0}",age);
}
}
public class Student:Person//派生类
{
public string studentId;
//派生类构造函数并用:base调用基类构造函数
public Student(string name,uint age,string studentId):base(name,age)
{
this.studentId = studentId;
}
public override void GetInfo()
{
//调用基类方法
base.GetInfo();
Console.WriteLine("StudentId: {0}",studentId);
}
}
public class Program
{
static void Main(string[] args)
{
Student objstudent=new Student("jeamsluu",99,"20140101011");
objstudent.GetInfo();
Console.ReadKey();
}
}
}