Задать вопрос
@libera

С# уменьшение кода?

Банальное сложение 2 чисел
int a = Convert.ToInt32(textBox.Text);
            int b = Convert.ToInt32(textBox1.Text);
            label.Content = a + b;

Можно как то уменьшить код?
Пример не водить 2 переменные, и в их записывать данные, потом складывать и выводить.
Типа label.Content = textBox.Text + textBox1.Text;
Только с преобразование из стринг в int
  • Вопрос задан
  • 378 просмотров
Подписаться 1 Оценить 1 комментарий
Решения вопроса 1
AlekseyNemiro
@AlekseyNemiro
full-stack developer
label.Content = (Convert.ToInt32(textBox.Text) + Convert.ToInt32(textBox1.Text)).ToString();

Или функцию написать и использовать её:
private static string Sum(string a, string b)
{
  return (Convert.ToInt32(a) + Convert.ToInt32(b)).ToString();
}

Или даже так:
label.Content = Sum(textBox.Text, textBox1.Text);
label.Content = Sum(textBox.Text, textBox1.Text, textBox2.Text, textBox4.Text);

private static string Sum(params string[] n)
{
  return n.Sum(itm => Convert.ToInt32(itm)).ToString();
}


Еще можно расширение написать, но это только на случай, если сложение чисел в TextBox являются частыми в проекте :-)
public static class TextBoxExtension
{

  public static string SumWith(this TextBox value, params TextBox[] n)
  {
    return (Convert.ToInt32(value.Text) + n.Sum(itm => Convert.ToInt32(itm.Text))).ToString();
  }

}

label.Content = textBox.SumWith(textBox1, textBox2, textBox3);

Либо расширить string:
public static class StringExtension
{

  public static string SumWith(this string value, params string [] n)
  {
    return (Convert.ToInt32(value) + n.Sum(itm => Convert.ToInt32(itm))).ToString();
  }

}

label.Content = textBox.Text.SumWith(textBox1.Text);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Melz
Не использовать Convert.ToInt32.

Вам нужен Int32.TryParse. Там и формат можно подставить и в случае ошибок ввода эксепшены сыпаться не будут.
Если хотите красиво - делайте через биндинги, events и прочий MVVM.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы