博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
base与this
阅读量:6488 次
发布时间:2019-06-24

本文共 3406 字,大约阅读时间需要 11 分钟。

1、base 关键字用于从派生类中访问基类的成员:   

    (1) 调用基类上已被其他方法重写的方法,如base实例1;  
    (2) 指定创建派生类实例时应调用的基类构造函数,如base实例2。   
基类访问只能在构造函数、实例方法或实例属性访问器中进行。

base实例1
1 using System;  2 using System.Collections.Generic;  3 using System.Linq;  4 using System.Text;  5  6 namespace BaseTest1  7 {
8 class Animal 9 {
10 public virtual void Display() 11 {
12 Console.WriteLine("The base animal class is Animal"); 13 } 14 } 15 class Monkey : Animal 16 {
17 public override void Display() 18 {
19 base.Display(); 20 Console.WriteLine("The monkey class is Monkey"); 21 } 22 } 23 class Program 24 {
25 static void Main(string[] args) 26 {
27 Monkey monkey = new Monkey(); 28 monkey.Display(); 29 } 30 } 31 }

 

base实例2
1 using System;  2 using System.Collections.Generic;  3 using System.Linq;  4 using System.Text;  5  6 namespace BaseTest  7 {
8 class Animal 9 {
10 public Animal() 11 { 12 Console.WriteLine("in Animal()"); 13 } 14 public Animal(int newanimal) 15 {
16 int num = newanimal; 17 Console.WriteLine("in Animal(int {0})",num); 18 } 19 } 20 class Monkey : Animal 21 {
22 public Monkey() 23 : base() 24 {
25 Console.WriteLine("in Monkey()"); 26 } 27 public Monkey(int newanimal) 28 : base(newanimal) 29 { 30 31 } 32 } 33 class Program 34 {
35 static void Main(string[] args) 36 {
37 Monkey monkey = new Monkey(); 38 Monkey monkey1 = new Monkey(10); 39 } 40 } 41 }

2、this关键字引用类的当前实例,如this综合实例。

以下是 this 的常用用途:

  1. 限定被相似的名称隐藏的成员
  2. 将对象作为参数传递到其他方法
  3. 声明索引器
this综合实例
1 using System;  2 using System.Collections.Generic;  3 using System.Linq;  4 using System.Text;  5  6 namespace ThisTest  7 {
8 class Employee 9 {
10 private string _name; 11 private int _age; 12 private string[] _arr = new string[5]; 13 14 public Employee(string name, int age) 15 {
16 //使用this限定字段,name与age 17 this._name = name; 18 this._age = age; 19 } 20 21 public string Name 22 {
23 get { return this._name; } 24 } 25 26 public int Age 27 {
28 get { return this._age; } 29 } 30 31 // 打印雇员资料 32 public void PrintEmployee() 33 {
34 // 将Employee对象作为参数传递到DoPrint方法 35 Print.DoPrint(this); 36 } 37 38 // 声明索引器 39 public string this[int param] 40 {
41 get { return _arr[param]; } 42 set { _arr[param] = value; } 43 } 44 45 } 46 class Print 47 {
48 public static void DoPrint(Employee e) 49 {
50 Console.WriteLine("Name: {0}\nAge: {1}", e.Name, e.Age); 51 } 52 } 53 class Program 54 {
55 static void Main(string[] args) 56 {
57 Employee E = new Employee("Huang", 28); 58 E[0] = "Sky"; 59 E[1] = "Emily"; 60 E[4] = "Karen"; 61 E.PrintEmployee(); 62 63 for(int i=0; i<5; i++) 64 {
65 Console.WriteLine("Friends Name: {0}", E[i]); 66 } 67 68 } 69 } 70 }

此实例参考:

 

转载地址:http://wiauo.baihongyu.com/

你可能感兴趣的文章
基于Hibernate注解的解读
查看>>
ELK——安装 logstash 2.2.0、elasticsearch 2.2.0 和 Kibana 3.0
查看>>
Java内部DNS查询实现和参数设置
查看>>
MySQL批量SQL插入性能优化
查看>>
0c-37-ARC
查看>>
图像的 SNR 和 PSNR 的计算
查看>>
图像边缘检测——Sobel算子
查看>>
【并发编程】延时初始化
查看>>
Android用路径api在内部存储读写文件
查看>>
PHP 实现对象的持久层,数据库使用MySQL
查看>>
Freemarker生成静态代码实例
查看>>
Ural 2036. Intersect Until You're Sick of It 计算几何
查看>>
SparkConf加载与SparkContext创建(源码阅读一)
查看>>
模2运算的原理 模2加法,模2减法,模2乘法,模2除法
查看>>
Couchbase的安装步骤
查看>>
Python爬网获取全国各地律师电话号
查看>>
关于一些对location认识的误区
查看>>
Genymotion模拟器出现INSTALL_FAILED_NO_MATCHING_ABIS 的解决办法
查看>>
Daydream Controller手柄数据的解析
查看>>
the import cannot be resolved
查看>>