gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-30 01:03:37 25 4
gpt4 key购买 nike

我有这段代码,它将演示 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 个参数的基类的 square 类。我也很好奇为什么这个下一个方法 Square(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 }
}

最佳答案

base(size, size) 调用父构造函数(在本例中为 Rectangle 的构造函数),此构造函数有 2 个参数,这就是 size 被指定两次的原因。

因为正方形必须具有相同的高度和宽度,所以 size 参数可用于 widthheight

关于c# - 当构造函数使用 1 个参数但 base 关键字使用 2 个参数时会发生什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27471195/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com