zoukankan      html  css  js  c++  java
  • C# 程序员参考 base

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

    • 调用基类上已被其他方法重写的方法。
    • 指定创建派生类实例时应调用的基类构造函数。

    基类访问只能在构造函数、实例方法或实例属性访问器中进行。

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

    示例

    在本例中,基类 Person 和派生类 Employee 都有一个名为 Getinfo 的方法。通过使用 base 关键字,可以从派生类中调用基类上的 Getinfo 方法。

    // keywords_base.cs
    // Accessing base class members
    using System;
       public class Person 
       {
          protected string ssn = "444-55-6666";
          protected string name = "John L. Malgraine";
    
          public virtual void GetInfo() 
          {
             Console.WriteLine("Name: {0}", name);
             Console.WriteLine("SSN: {0}", ssn);
          }
       }
       class Employee: Person 
       {
          public string id = "ABC567EFG";
    
          public override void GetInfo() 
          {
             // Calling the base class GetInfo method:
             base.GetInfo();
             Console.WriteLine("Employee ID: {0}", id);
          }
       }
    
    class TestClass {
       public static void Main() 
       {
          Employee E = new Employee();
          E.GetInfo();
       }
    }

    输出

    Name: John L. Malgraine
    SSN: 444-55-6666
    Employee ID: ABC567EFG

    有关其他示例,请参见 newvirtualoverride

    示例

    本示例显示如何指定在创建派生类实例时调用的基类构造函数。

    // keywords_base2.cs
    using System;
    public class MyBase
    {
       int num;
    
       public MyBase() 
       {
          Console.WriteLine("in MyBase()");
       }
    
       public MyBase(int i )
       {
          num = i;
          Console.WriteLine("in MyBase(int i)");
       }
    
       public int GetNum()
       {
          return num;
       }
    }
    
    public class MyDerived: MyBase
    {
       // This constructor will call MyBase.MyBase()
       public MyDerived() : base()
       {
       }
    
        // This constructor will call MyBase.MyBase(int i)
       public MyDerived(int i) : base(i)
       {
       }
    
       public static void Main() 
       {
          MyDerived md = new MyDerived();
          MyDerived md1 = new MyDerived(1);
       }
    }

    输出

    in MyBase()
    in MyBase(int i)
  • 相关阅读:
    能帮你找到网页设计灵感的16个网站
    Alpha和索引色透明
    CSS2.0中最常用的18条技巧
    汇编指令CPUID
    ewebeditor漏洞解決方法
    关于SQL SERVER建立索引需要注意的问题
    Apple QuickTime
    免杀修改特征码需要掌握的汇编知识
    【我翻译的文章】理解和应用F#中的“use”语法
    【我翻译的文章】Promesh.NET:一个.NET的MVC Web框架
  • 原文地址:https://www.cnblogs.com/chinatefl/p/132350.html
Copyright © 2011-2022 走看看