'base'和'this'关键字之间的区别

Lea*_*ner 2 .net c#

有人告诉我,可以使用baseor thiskeyword 在派生类中访问基类中的受保护变量.我现在完全糊涂了,因为,this 关键字指的是当前类(派生类).

public class A
{
  protected int i;
}
public class B :A
{
  void Display()
  {
    this.i=10;
    //  (or)
    base.i=10;
  }
}
Run Code Online (Sandbox Code Playgroud)

有什么技术差异吗?首先,今天我很想知道为什么我不能创建A inside Display()方法的对象并通过该对象访问变量i,因为受保护访问的定义说,它可以在任何派生类中访问.伙计们,我看过一些线程,但他们说的是,我们无法创建对象并访问受保护的成员.我觉得,这与定义相反.

有人可以请我解释上述两个问题

mcm*_*eva 5

这很简单:

this指的是当前对象(EG,如果方法类似void mymethod(int myvar),并且类中已myvar定义,则可以使用它myvar来引用参数,并this.myvar引用类中的那个.)

base指基类(您的类派生自的类).(EG,如果你覆盖了一个方法Update,那么在它结束时,你可以base.Update();调用原来的方法.)