源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

C# 参考之访问关键字:base、this

  • 时间:2020-12-30 11:59 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:C# 参考之访问关键字:base、this
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; i<5; 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 */ 
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部