this与base关键字

this关键字



this关键字代表当前对象,通过this关键字可以访问当前对象的成员。(当前对象的成员:自己本身的成员+从父类继承过来的所有的成员。)

this关键字可以访问:本类的所有成员和父类的非私有成员。父类的私有成员确实存在,但是就是访问不到。

this关键字仍然代表的是对象,通过它可以点出对象中的除了父类的私有成员以外的所有成员。

this关键字只能用在实例方法中。

作用:

1)代表当前对象。在实例方法中使用this关键字就代表当前对象。通过this关键字可以点出本类的所有成员和父类的非私有成员。

2)调用本类的其他的构造函数。在构造函数的后面的this代表调用本类的其他的构造函数。

base关键字


  显示的访问父类的非私有成员。可以访问子类对象中的父类的非私有成员。base不代表父类对象。因为压根就没有父类对象。通过它可以访问到父类的非私有成员。

通过this关键字访问当前对象的成员的时候:先找子类本身有没有这个成员,如果没有再找是否有从父类继承过来的。base关键字 直接就找父类中的成员。我们发现,base可以点出来的成员,通过this都可以点出来访问。

建议:如果我们访问的确实是从父类继承过来的,那么建议用base关键字访问,这样方便代码的阅读和提高效率。只有在访问的成员确实是子类独有的,那么我们才用this关键字。

作用:

1)在实例方法中,通过base关键字可以显示的访问子类对象中的非私有的父类成员。

2)调用父类的构造函数。在子类的构造函数的后面的base代表调用父类的构造函数。

时间: 2024-10-17 10:25:28

this与base关键字的相关文章

C#基础知识之base关键字

前言 其实很早就想写关于C#基础,总是自己给自己找借口,或者去网上搜搜看看,现在想想觉得自己有点懒惰...  作为开发人员,基础知识是重中之重的,只有巩固.理解.实践才能提高自身的技能.同时也希望通过这个系列,能够帮助需要巩固基础的人. base关键字 调用基类已被派生类重写的方法 public class Father { public virtual void Say() { Console.WriteLine("Father Say"); } } public class Son

C#中base 关键字的作用

引用:http://msdn.microsoft.com/en-us/library/hfw7t1ce.aspx base base 关键字用于从派生类中访问基类的成员: 调用基类上已被其他方法重写的方法. 指定创建派生类实例时应调用的基类构造函数. 基类访问只能在构造函数.实例方法或实例属性访问器中进行. 从静态方法中使用 base 关键字是错误的. 一.在本例中,基类 Person 和派生类 Employee 都有一个名为 Getinfo 的方法.通过使用 base 关键字,可以从派生类中调

抽象类和虚方法、base关键字

微软官方文档:https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/classes-and-structs/abstract-and-sealed-classes-and-class-members 抽象类和类成员 通过在类定义前面放置关键字 abstract,可以将类声明为抽象类. 例如: public abstract class A { // Class members here. } 抽象类不能实例化. 抽象类的

【转】C#中base关键字的几种用法:base()

base其实最大的使用地方在面相对象开发的多态性上,base可以完成创建派生类实例时调用其基类构造函数或者调用基类上已被其他方法重写的方法. 2.1关于base调用基类构造函数 public class A { public A() { Console.WriteLine("Build A"); } } public class B : A { public B() : base() { Console.WriteLine("Build B"); } static

C#结构函数与base关键字

//声明父类 class ProductsFather { public double Price { get; set; } public int Count { get; set; } public string Id { get; set; } //给字段赋值 c#结构函数 public ProductsFather(double price, int count, string id) { this.Price = price; this.Count = count; this.Id =

Base关键字,指定调用基类中的哪个构造函数

父类: class Person { public Person() { Console.WriteLine("========================"); } public Person(string name, int age, string email) { this.Name = name; this.Age = age; this.Email = email; } public string Name { get; set; } public int Age { g

Base关键字用法

1.背景 我:虽然通过继承减少了代码冗余,但是,每一个子类的构造函数还是需要给所有属性赋值的,很麻烦的. 师:这个好办,用base就行啦. 我:贝司?还吉他呢! 师:别急,首先我们先介绍下实例化子类对象的时候调用父类构造函数. 运行结果: 从上面代码分析可知: (1)执行 ChildClass child=new ChildClass(); 会首先调用父类无参构造函数(这个构造函数一定是无参构造函数),然后再调用子类无参构造函数,所以会先显示 (2)然后再执行child.SayHello();

C#基础 base与this关键字

base和this在C#中被归于访问关键字,顾名思义,就是用于实现继承机制的访问操作来满足对对象成员的访问,从而为多态机制提供更加灵活的处理方式. this是指当前对象本身,而base则是在继承类中访问基类时用的,只有对继承关系的类才有意义说base. 综合来说: this相当于自己的指针:base相当于父类的指针. 一.base关键字 用于在派生类中实现对基类公有或者受保护成员的访问,但是只局限在构造函数.实例方法和实例属性访问器中.功能主要包括: (1)调用基类上已被其他方法重写的方法. (

关键字 base 的作用

①调用基类上已被其他方法重写的方法,小栗子a如下: public class Father { public virtual void Show() { Console.WriteLine(" I am your father "); } } public class Child:Father { public override void Show() { base.Show(); Console.WriteLine("I am your child"); } }