this与base
实例化过程在构造函数中的应用
在定义构造函数时,base用作该构造函数使用父类的指定函数的构造函数
this用作在调用指定的构造函数之前,先使用使用this指定的构造函数
1 public class BaseClass 2 { 3 public BaseClass() { } 4 public BaseClass(int i) { } 5 } 6 7 public class MyClass: BaseClass 8 { 9 public MyClass() : this(5, 6) { } 10 11 public MyClass(int i, int j): base(i) { } 12 13 }
此时调用默认构造函数时
MyClass test = new MyClass();
执行顺序为:
执行
1、BaseClass(int i)
2、MyClass(int i , int j)
3、MyClass()
方法或属性中的应用
base:
1 当派生类隐藏了基类中的方法又想调用时
2 要给继承的虚拟成员添加实现代码,而不是简单的重写新代码替换时
public class BaseClass { public virtual void Test() => Console.WriteLine("Base"); } public class MyClass : BaseClass { public override void Test() { base.Test(); Console.WriteLine("666"); } }
this:
1 把当前对象的实例的引用传递给一个方法
2 限定引用类型是成员而非局部变量;
public class MyNewClass { private int date; public int Date { get => this.date;} }