当构造函数使用 1 个参数,但 base 关键字使用 2 个参数时会发生什么

本文关键字:参数 什么 构造函数 base 关键字 | 更新日期: 2023-09-27 18:34:09

我有这段代码,它将演示 Liskov 替换,但我对 base 关键字对 2 个参数的作用感到困惑。有人可以解释一下吗?

class Rectangle
{
    public Rectangle(int width, int height)
    {
        Width = width;
        Height = height;
    }
    public virtual int Height {get;set;}
    public virtual int Width {get;set;}
    public int Area
    {
        get { return Height*Width }
}

现在是继承具有 2 个参数的基类的方形类。我也很好奇为什么下一个方法平方(int)可以在基类中使用具有不同名称的方法

private class Square : Rectangle
{
    public Square(int size) : base(size, size) {} ///here is my confusion
    public override int Width
    {
        get {return base.Width}
        set { base.Width = value; base.Height = value}
    }
    public override int Height
    { /// same thing as Width }
}

当构造函数使用 1 个参数,但 base 关键字使用 2 个参数时会发生什么

base(size, size)调用父构造函数(在本例中为矩形),此构造函数接受 2 个参数,这就是指定两次大小的原因。

由于正方形必须具有相同的高度和宽度,因此大小参数可用于widthheight