zoukankan      html  css  js  c++  java
  • C# this和base

    base关键字:其用于在派生类中实现对基类公有或者受保护成员的访问,但是只局限在构造函数、实例方法和实例属性访问器中,还有指定创建派生类实例时应调用的基类构造函数。

    this关键字:限定被相似的名称隐藏的成员,将对象作为参数传递到其他方法,声明索引器 。

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                Audi audi = new Audi("linQ",60);
                audi[1] = "A6";
                audi[2] = "A8";
                Console.WriteLine(audi[1]);
                audi.Run();
                audi.ShowResult();
                Console.ReadLine();
            }
        }
        public class Action
        {
            public static void ToRun(Vehicle vehicle)
            {
                Console.WriteLine("{0} is running.", vehicle.ToString());
            }
        }
        public class Vehicle
        {
            private string name;
            private int speed;
            private string[] array = new string[10];
    
            public Vehicle()
            {
            }
            //限定被相似的名称隐藏的成员
            public Vehicle(string name, int speed)
            {
                this.name = name;
                this.speed = speed;
            }
            public virtual void ShowResult()
            {
                Console.WriteLine("The top speed of {0} is {1}.", name, speed);
            }
            public void Run()
            {
                //传递当前实例参数
                Action.ToRun(this);
            }
            //声明索引器,必须为this,这样就可以像数组一样来索引对象
            public string this[int param]
            {
                get { return array[param]; }
                set { array[param] = value; }
            }
        }
        public class Car : Vehicle
        {
            //派生类和基类通信,以base实现,基类首先被调用
            public Car()
                : base("Car", 200)
            { }
    
            //指定创建派生类实例时应调用的基类构造函数
            public Car(string name, int speed)
                : this()
            { }
    
            public override void ShowResult()
            {
                //调用基类上已被其他方法重写的方法
                base.ShowResult();
                Console.WriteLine("It's a car's result.");
            }
        }
        public class Audi : Car
        {
            public Audi()
                : base("Audi", 300)
            { }
    
            public Audi(string name, int speed)
                : this()
            {
            }
            public override void ShowResult()
            {
                //由三层继承可以看出,base只能继承其直接基类成员
                base.ShowResult();
                base.Run();
                Console.WriteLine("It's audi's result.");
            }
    
        }
    
    
    }
  • 相关阅读:
    小谈HTML中的META标签
    如何安装ASPAJAXExtSetup.msi
    <asp:Content> MasterPage技术
    Asp.Net数据控件引用AspNetPager.dll分页
    2011年的最后一天,怎么地也应该写篇博客
    asp.net利用存储过程和div+css实现分页(类似于博客园首页分页)
    Asp.Net 利用TimeSpan类实现时间差计算 并返回所需字符串(类似于SNS)
    最简单的asp.net ajax post,适用于初学者.
    分享AjaxPro或者Ajax实现机制
    Windows 7操作系统 IIS 7 配置asp.net网站伪静态配置问题
  • 原文地址:https://www.cnblogs.com/lgxlsm/p/3428575.html
Copyright © 2011-2022 走看看