Как в мире установить попытку и уловить, чтобы пользователь не вводил несколько десятичных знаков. Это попытка и улов? Или что именно я хочу здесь сделать? Очень новое для приложений с окнами ...Сложность с попытками и уловками?
Также можно заметить ... когда я нажимаю на вычисления, числа исчезают .. он не постоянно остается там. Я думал, что это странно. Кто-нибудь знает, почему? Например, если я ударил 6 + 6 он показывает «6», а затем еще один «6», а затем 12, а не дисплей 6 + 6 = 12 Я не понимаю, что либо
EDIT: Вот обновленный код. У меня есть все, что я до сих пор не понимаю, как постоянно писать код. Любые предложения приветствовали, как я застрял ...
public partial class Form1 : Form
{
char c;
double num1;
double num2;
public Form1()
{
InitializeComponent();
}
private void btn0_Click(object sender, EventArgs e)
{
txtBox.Text += 0;
}
private void btn1_Click(object sender, EventArgs e)
{
txtBox.Text += 1;
}
private void btn2_Click(object sender, EventArgs e)
{
txtBox.Text += 2;
}
private void btn3_Click(object sender, EventArgs e)
{
txtBox.Text += 3;
}
private void btn4_Click(object sender, EventArgs e)
{
txtBox.Text += 4;
}
private void btn5_Click(object sender, EventArgs e)
{
txtBox.Text += 5;
}
private void btn6_Click(object sender, EventArgs e)
{
txtBox.Text += 6;
}
private void btn7_Click(object sender, EventArgs e)
{
txtBox.Text += 7;
}
private void btn8_Click(object sender, EventArgs e)
{
txtBox.Text += 8;
}
private void btn9_Click(object sender, EventArgs e)
{
txtBox.Text += 9;
}
private void btnDecimal_Click(object sender, EventArgs e)
{
if (!txtBox.Text.Contains("."))
txtBox.Text += ".";
}
private void btnAddition_Click(object sender, EventArgs e)
{
c = '+';
num1 = double.Parse(txtBox.Text);
txtBox.Text = string.Empty;
}
private void btnSubtraction_Click(object sender, EventArgs e)
{
c = '-';
num1 = double.Parse(txtBox.Text);
txtBox.Text = string.Empty;
}
private void btnMultiplication_Click(object sender, EventArgs e)
{
c = '*';
num1 = double.Parse(txtBox.Text);
txtBox.Text = string.Empty;
}
private void btnDivision_Click(object sender, EventArgs e)
{
c = '/';
num1 = double.Parse(txtBox.Text);
txtBox.Text = string.Empty;
}
private void btnClear_Click(object sender, EventArgs e)
{
txtBox.Clear();
}
private void btnEqual_Click(object sender, EventArgs e)
{
num2 = double.Parse(txtBox.Text);
double result;
switch (c)
{
case '+':
result = num1 + num2;
txtBox.Text = result.ToString();
break;
case '-':
result = num1 - num2;
txtBox.Text = result.ToString();
break;
case '/':
if (num2!= 0)
{
result = num1/num2;
txtBox.Text = result.ToString();
}
else
{
txtBox.Text = "You can't divide by zero... sign up for Math 100 please =)";
}
break;
case '*':
result = num1 * num2;
txtBox.Text = result.ToString();
break;
}
}
}
}
Просто подсказка. [операторы switch] (http://msdn.microsoft.com/en-us/library/06tc147t%28v=vs.90%29.aspx) должны быть предпочтительнее над такими выражениями, как 'if (c == 1) else if (c == 2) и т. д. – Itay
Почему это? Он работает быстрее с помощью case/switch или ...? Я все еще изучаю основы C#. – Zoro
Операция 'switch case' в основном более читаема, чем' else if 'и на больших весах, она еще эффективнее – Itay