2015-12-10 2 views
-1

Я делаю калькулятор, чтобы получить некоторый опыт работы с C#, atm, у меня есть одно текстовое поле ontop друг от друга, нижнее называется вычислением; Я хочу, чтобы это показало рассчитанную сумму. Текстовое поле сверху называется результатом, и я, очевидно, хочу, чтобы он отображал результат; поле результата отлично работает. Я хочу, чтобы нижнее текстовое поле (называемое вычислением) отображало символ +, который он не позволяет мне делать, и на данный момент я могу только показывать цифры. Я предполагаю, что это проблема типа данных. Любая помощь/совет? Спасибо! (Я сортировкой это прежде, чем перейти на другие символы и в конечном итоге положить его в корпус выключателя :))Просто нужна помощь относительно калькулятора C#

public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    double num1 = 0; 
    double num2 = 0; 

    private void Clearbtn_Click(object sender, EventArgs e) 
    { 
     Calculation.Clear(); 
     Result.Clear(); 
    } 

    private void Numericclick(object sender, EventArgs e) 
    { 
     Button button = (Button)sender; 
     Calculation.Text = Calculation.Text + button.Text; 
    } 

    private void Plusbtn_Click(object sender, EventArgs e) 
    { 
     num1 = num1 + double.Parse(Calculation.Text); 
     Result.Show(); 
    } 

    private void Equalsbtn_Click(object sender, EventArgs e) 
    { 
     num2 = num1 + double.Parse(Calculation.Text); 
     Result.Text = num2.ToString(); 
     num1 = 0; 

    } 
} 

}

ответ

1

Если вы используете оператор (+) со строками он сцепляет их вместе ,

Эта линия Calculation.Text = Calculation.Text + button.Text;

В C# 6 будет этот:

Calculation.Text = $"{Calculation.Text} + {button.Text}"; 

Ниже, чем С # 6:

Calculation.Text = string.Format("{0} + {1}", Calculation.Text, button.Text); 

конкатенации строк Документация: HERE

Пример разницы между операнд + и как строка "+":

//+ operand concats string 
var text = "abc"; 
var text2 = "def"; 

var result = text + text2; 
//result -> "abcdef" 

var result2 = text + "+" + text2; 
//result -> "abc+def" 
+0

Спасибо, Есть ли другой способ обойтись? возможно, менее сложный, так как я новичок? –

+1

Это не сложно. Вам нужен плюс как строка, поэтому вы должны быть в формате «+», иначе он будет рассматриваться как операнд. Манипулирование строк гораздо более основательно, чем использование событий и текстовых полей и форм. Возможно, вам стоит вернуться к консольному приложению. –

+0

Я сделаю снимок, но я немного не уверен, и я не могу сделать шаг назад, так как я использую их для Uni, но спасибо за совет –

Смежные вопросы