Вы не можете сделать это так, как написано, но вы можете определить свойство Pos
, чтобы сделать то же самое. Вместо
public Vector2 Pos { get; set; }
сделать это
public Vector2 Pos
{
get
{
return new Vector2(Width, Height) * Area;
}
}
Конечно, тогда любой квадрат имеет то же определение для Pos
. Не уверен, что ты этого хочешь.
Редактировать
На основании вашего комментария, насколько я понимаю, вы хотите иметь возможность указать значение Pos для разных квадратов. Вот еще одна идея. Вы можете добавить третий аргумент в конструктор, который принимает делегат, и тогда конструктор может использовать делегат внутри, чтобы установить свойство. Затем, когда вы создаете новый квадрат, вы просто передаете лямбду для нужного выражения. Примерно так:
public Square(int width, int height, Func<Square, Vector2> pos)
{
Width = width;
Height = height;
Pos = pos(this);
}
тогда
Square mySquare = new Square(4, 5, sq => new Vector2(sq.Width, sq.Height) * sq.Area);