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)

  */

  注意点:

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

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

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

C# 中的关键字之:base、this 【转】的更多相关文章

  1. .net(C#)中this关键字

    使用this关键字引用成员变量使用this关键字在自身构造方法内部引用其它构造方法使用this关键字代表自身类的对象使用this关键字引用成员方法 在一个类的方法或构造方法内部,可以使用"t ...

  2. 【C#学习笔记之一】C#中的关键字

    C#中的关键字 关键字是对编译器具有特殊意义的预定义保留标识符.它们不能在程序中用作标识符,除非它们有一个 @ 前缀.例如,@if 是有效的标识符,但 if 不是,因为 if 是关键字. 下面是列出的 ...

  3. 如何给wp(Windows phone)中搜索关键字加亮?

    问题来源 最近在群里看到群友讨论在wp中有个搜索功能,要求搜索关键字在搜索结果内容中加亮(即加颜色),由于wp中没有自带这样的控件,于是大家各抒自见,有人说用第三方控件,有人说用richtextbox ...

  4. Java中的关键字 transient

    先解释下Java中的对象序列化 在讨论transient之前,有必要先搞清楚Java中序列化的含义: Java中对象的序列化指的是将对象转换成以字节序列的形式来表示,这些字节序列包含了对象的数据和信息 ...

  5. 在ASP.NET Core中实现一个Token base的身份认证

    注:本文提到的代码示例下载地址> How to achieve a bearer token authentication and authorization in ASP.NET Core 在 ...

  6. js中this关键字测试集锦

    参考:阮一峰<javascript的this用法>及<JS中this关键字详解> this是Javascript语言的一个关键字它代表函数运行时,自动生成的一个内部对象,只能在 ...

  7. [转]NET Core中实现一个Token base的身份认证

    本文转自:http://www.cnblogs.com/Leo_wl/p/6077203.html 注:本文提到的代码示例下载地址> How to achieve a bearer token ...

  8. 【转载】C/C++中extern关键字详解

    1 基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义.此外extern也可用来进行链接指定. 也就是说extern ...

  9. 【转】java中volatile关键字的含义

    java中volatile关键字的含义   在java线程并发处理中,有一个关键字volatile的使用目前存在很大的混淆,以为使用这个关键字,在进行多线程并发处理的时候就可以万事大吉. Java语言 ...

随机推荐

  1. 为什么和其他语言相比C语言是快速的语言

    初入门的我们经常听见别人说"真正的程序员用C语言编程,C是最快的语言因为它是最靠近及其底层的语言."那么和其他语言相比C语言到底有什么特别的呢? C语言没有什么特别,这就是它快速的 ...

  2. 编解码学习笔记(十):Ogg系列

    Ogg是一个自由且开放标准的容器格式,由Xiph.Org 基金会所维护.Ogg格式并不受到软件专利的限制,并设计用于有效率地串流媒体和处理高质量的数字多媒体. Ogg意指一种文件格式,能够纳入各式各样 ...

  3. java值传递

    Java使用按值传递的函数调用方式,这往往使我感到迷惑.因为在基础数据类型和对象的传递上,我就会纠结于到底是按值传递,还是按引用传递.其实经过学习,Java在任何地方,都一直发挥着按值传递的本色. 首 ...

  4. 深入浅出NodeJS——异步I/O

    底层操作系统,异步通过信号量.消息等方式有着广泛的应用. PHP语言从头到尾都是以同步堵塞方式执行,利于程序猿顺序编写业务逻辑. 异步I/O.事件驱动.单线程构成Node的基调. why异步I/O ( ...

  5. CSS布局方案之圣杯布局

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...

  6. 安装Oracle11后在SQL Developer启动时提示:enter the full pathname for the java.exe

    1) Open the file ..\sqldeveloper\sqldeveloper\bin\sqldeveloper.conf and add the following line to se ...

  7. Java学习——继承

    将学生工人的共性描述提取出来,单独进行描述,只要让学生和工人与单独描述的这个类有关系,就可以了. 继承:1,提高了代码的复用性.2,让类与类之间产生了关系.有了这个关系,才有了多态的特性. 注意:千万 ...

  8. PHP学习笔记四【类型运算】

    <?php //类型运算符 class Dog { } class Cat { } $a=new Cat; var_dump($a instanceof Cat); //在实际开发中,判断某一个 ...

  9. 认识Java数组(一)

    特别想喜欢一个寓言故事: 噢,它明白了,河水既没有牛伯伯说的那么浅,也没有小松鼠说的那么深,只有自己亲自试过才知道!道听途说永远只能看到表面现象,只有亲自试过了,才知道它的深浅!!!!! 言归正传: ...

  10. oracle 之 COMMENT

    http://blog.csdn.net/liguihan88/article/details/3002403 无疑注释现在都被大家接受和认可,在大家编程用的IDE中都提供或有第三方插件来支持提取注释 ...