C# base关键字用于从派生类中访问基类的成员:调用基类上已被其他方法重写的方法。指定创建派生类实例时应调用的基类构造函数。基类访问只能在构造函数、实例方法或实例属性访问器中进行。
示例:
在派生类中调用基类方法。
- //base关键字
- //访问基类成员
- usingSystem;
- publicclassBaseClass
- {
- protectedstring_className="BaseClass";
- publicvirtualvoidPrintName()
- {
- Console.WriteLine("ClassName:{0}",_className);
- }
- }
- classDerivedClass:BaseClass
- {
- publicstring_className="DerivedClass";
- publicoverridevoidPrintName()
- {
- Console.Write("TheBaseClassNameis{0}");
- //调用基类方法
- base.PrintName();
- Console.WriteLine("ThisDerivedClassis{0}",_className);
- }
- }
- classTestApp
- {
- publicstaticvoidMain()
- {
- DerivedClassdc=newDerivedClass();
- dc.PrintName();
- }
- }
- /**//*
- 控制台输出:
- TheBaseClassNameisBaseClass
- ThisDerivedClassisDerivedClass
- */
- 在派生类中调用基类构造函数。
- //keywords_base2.cs
- usingSystem;
- publicclassBaseClass
- {
- intnum;
- publicBaseClass()
- {
- Console.WriteLine("inBaseClass()");
- }
- publicBaseClass(inti)
- {
- num=i;
- Console.WriteLine("inBaseClass(int{0})",num);
- }
- }
- publicclassDerivedClass:BaseClass
- {
- //该构造器调用BaseClass.BaseClass()
- publicDerivedClass():base()
- {
- }
- //该构造器调用BaseClass.BaseClass(inti)
- publicDerivedClass(inti):base(i)
- {
- }
- staticvoidMain()
- {
- DerivedClassdc=newDerivedClass();
- DerivedClassdc1=newDerivedClass(1);
- }
- }
从静态方法中使用C# base关键字是错误的。C# base关键字主要用于面向对象开发的对态这方面。
【编辑推荐】