C# 中的关键字之:base、this

RnB达人

RnB达人

2016-02-19 13:47

岁数大了,QQ也不闪了,微信也不响了,电话也不来了,但是图老师依旧坚持为大家推荐最精彩的内容,下面为大家精心准备的C# 中的关键字之:base、this,希望大家看完后能赶快学习起来。

  C# 中的关键字之:base、this。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)

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

  */

  注意点:

  从静态方法中使用 base 关键字是错误的。

  base 主要用于面向对象开发的对态这方面,在示例2中有体现。

  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

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

  Friends Name: Scott

  Friends Name: Leigh

  Friends Name:

  Friends Name:

  Friends Name: Kiwis

  */

  注意点:

  由于静态成员函数存在于类一级,并且不是对象的一部分,因此没有 this 指针。在静态方法中引用 this 是错误的。

  索引器允许类或结构的实例按照与数组相同的方式进行索引。索引器类似于属性,不同之处在于它们的访问器采用参数。

  C# 中的关键字之:base、this。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)

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

  */

  注意点:

  从静态方法中使用 base 关键字是错误的。

  base 主要用于面向对象开发的对态这方面,在示例2中有体现。

  this 关键字引用类的当前实例。

展开更多 50%)
分享

猜你喜欢

C# 中的关键字之:base、this

编程语言 网络编程
C# 中的关键字之:base、this

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

编程语言 网络编程
C# 参考之访问关键字:base、this

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

C#中using关键字的使用

电脑网络
C#中using关键字的使用

正确理解C#中的ref关键字

编程语言 网络编程
正确理解C#中的ref关键字

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

漫谈C#编程中的多态与new关键字

编程语言 网络编程
漫谈C#编程中的多态与new关键字

C++中的 static 关键字

C语言教程 C语言函数
C++中的 static 关键字

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

详解Visual C#数据库编程

详解Visual C#数据库编程

php半小时精通正则表达式

php半小时精通正则表达式
下拉加载更多内容 ↓