// Постфиксный оператор ++ возвращает значение до приращения. То есть если Q=3, то Q++ вернет 3, но после этого Q станет равен 4. Технически это происходит так: var tmp = Q; Q = Q + 1; return tmp;
// Отсюда все тонкости с возведением в квадрат. Если мы имеем выражение (Q++)*(Q++), то в первой скобке мы получим исходное значение Q, но во второй скобке Q уже будет иметь увеличенное значение. Отсюда при Q=3 (Q++)*(Q++) будет равен 3*4=12. После чего сам Q станет равен 5.
// Form1.Designer.cs прикрепил как .txt, так как иначе не прикрепить
Answers & Comments
// Постфиксный оператор ++ возвращает значение до приращения. То есть если Q=3, то Q++ вернет 3, но после этого Q станет равен 4. Технически это происходит так: var tmp = Q; Q = Q + 1; return tmp;
// Отсюда все тонкости с возведением в квадрат. Если мы имеем выражение (Q++)*(Q++), то в первой скобке мы получим исходное значение Q, но во второй скобке Q уже будет иметь увеличенное значение. Отсюда при Q=3 (Q++)*(Q++) будет равен 3*4=12. После чего сам Q станет равен 5.
// Form1.Designer.cs прикрепил как .txt, так как иначе не прикрепить
Форма:
namespace WinFormsApp1
{
public partial class Form1 : Form
{
private readonly A _a;
public Form1()
{
InitializeComponent();
_a = new A();
}
private void C1Btn_Click(object sender, EventArgs e)
{
InfoListBox.Items.Add($"C1: {_a.C1}");
}
private void C2Btn_Click(object sender, EventArgs e)
{
InfoListBox.Items.Add($"C2: {_a.C2}");
}
private void D1Btn_Click(object sender, EventArgs e)
{
InfoListBox.Items.Add($"D1: {_a.D1()}");
}
private void D2Btn_Click(object sender, EventArgs e)
{
InfoListBox.Items.Add($"D2: {_a.D2()}");
}
}
}
Класс A:
using System;
namespace WinFormsApp1
{
internal class A
{
private decimal a = 3;
private decimal b = 5;
public decimal C1 => a++;
public decimal C2 => b++;
public A() { }
public decimal D1()
{
return C1 * C1;
}
public decimal D2()
{
return C2 * C2;
}
}
}