Cześć wszystkim mam pytanie, otóż przerabiam sobie książkę p.t "Wzorce projektowe w .NET" autora Dmitri Nesteruk-a
I napotkałem na taki problem na początku, gdy w temacie związanym z zasadą Liskov-a pokazuje nam autor jakiego kodu nie pisać, ten kod u mnie działa.
public class Rectangle
{
public int Width { get; set; }
public int Height { get; set; }
public Rectangle() { }
public Rectangle(int width, int height)
{
Width = width;
Height = height;
}
public int Area => Width * Height;
}
public class Square : Rectangle
{
public Square(int side)
{
Width = Height = side;
}
public new int Width
{
set => base.Width = base.Height = value;
}
public new int Height
{
set => base.Width = base.Height = value;
}
}
Z tego co rozumiem, aplikacja powinna przy każdym przypisaniu do zmiennej "Height" zmieniać również wartość zmiennej "Width", tutaj jest kod wywołujący
public static void UseIt(Rectangle r)
{
r.Height = 10;
Console.WriteLine($"Oczekiwane pole powierzchni {10*r.Width}, uzyskano {r.Area}");
}
I mam taki problem, w sumie brak zrozumienia, czemu przy zmianie wartości zmiennej obiektu nie zmienia się wartość szerokośći. Szerokość jest ciągle stała, bez względu na zmianę wysokości. Dzięki z góry