#c# #windows
#c# #Windows
Вопрос:
Прежде всего, всем привет и извините за то, что я тупица!
Я относительно новичок в C #, у меня есть методы getFirstNumber
и getSecondNumber
, но я не могу понять, как заставить buttonEquals_Click
работать так, как задумано.
Идея заключается в том, что:
-
Пользователь вводит число в текстовое поле.
-
Пользователь нажимает на » ,-,*,/,» кнопка number преобразуется в первое число с плавающей запятой.
-
Пользователь вводит другое число в то же текстовое поле.
-
Пользователь нажимает кнопку «=», число анализируется как второе число с плавающей запятой ….
….. и он получает вывод уравнения в виде метки.
Я застрял на последней точке, я не могу разобраться в C #, пожалуйста, помогите мне: D
public void getfirstNumber(float firstNumber,int Operation)
{
float firstnumber = firstNumber;
int operation = Operation;
}
public void getsecondNumber(float secondNumber)
{
float secondnumber = secondNumber;
}
private void buttonMULTIPLY_Click(object sender, EventArgs e)
{
float firstNumber = float.Parse(textBoxInput.Text);
int multiply = 4;
getfirstNumber(firstNumber,mul);
}
private void buttonEQUALS_Click(object sender, EventArgs e)
{
float secondNumber = float.Parse(textBoxInput.Text);
getsecondNumber(secondNumber);
/* if operation == 4
{print in label the output of firstnumber / secondnumber
} */
}
Комментарии:
1. Я думаю, вы пытаетесь создать калькулятор, но я на самом деле не понял, что делают методы
getfirstNumber
иgetsecondNumber
?2. Вы должны создать глобальные свойства «firstNumber» и «secondNumber». То, как вы используете их сейчас, каждый раз инициализирует их как новые. Читайте о глобальных свойствах онлайн
3. …узнайте о
scope
— где вы объявляете переменную, определяет, где она «живет» или где вы можете ее использовать.4. Итак, в одном текстовом поле у вас есть оба числа, которые нужно умножить вместе. Вам нужно разделить содержимое текстового поля на первый пробел, и тогда у вас будут две подстроки, которые вы можете разобрать и умножить
Ответ №1:
Вам не нужны методы getfirstNumber()
и getSecondNumber()
:
string Operation = "";
float firstNumber = 0, seconNumber = 0;
private void buttonMULTIPLY_Click(object sender, EventArgs e)
{
firstNumber = float.Parse(textBoxInput.Text);
Operation = "*";
}
private void buttonEQUALS_Click(object sender, EventArgs e)
{
secondNumber = float.Parse(textBoxInput.Text);
switch(Operation)
{
case "*":
textBoxInput.Text = (firstNumber * secondNumber).ToString();
break;
case "-":
textBoxInput.Text = (firstNumber - secondNumber).ToString();
break;
case " ":
textBoxInput.Text = (firstNumber secondNumber).ToString();
break;
case "/":
textBoxInput.Text = (firstNumber / secondNumber).ToString();
break;
}
Operation = "";
}
Комментарии:
1. Спасибо, но он по-прежнему не передает ни первое числовое значение, ни знак операции методу buttonEQUALS.
2. При нажатии кнопки умножения
firstNumber
устанавливается, и вы также устанавливаете тип операции. приbuttonEQUALS
нажатииsecondNumber
устанавливается значение, и теперь у вас есть и числа, и оператор, поэтому вы можете вычислить результат с помощью этой кнопки и показать результат.3. разве это не то, что вы хотите сделать? и обратите внимание, что событие нажатия кнопки принимает только 2 параметра (object и eventargs), и вы не можете передать ему никаких других аргументов.
4. Оказалось, что я неправильно настроил события для кнопок, теперь все работает нормально, спасибо за вашу помощь и терпение 🙂