2013-10-28 42 views
-1

我想在c#中做一個計算器,我期待連接一個 - 到一個字符串或類似的東西。預期產出也應該減去兩個變量。 EX,如何連接一個 - 在一個字符串c#

string ready; 

     private void minus_Click(object sender, EventArgs e) 
    { 

     long minusnumber = 32; 

     ready = minusnumber + "-"; 


    } 
. 
. 
. 
private void equals_Click(object sender, EventArgs e) 
    { 
     long equalsNumber1 = 32; 

     ready += equalsNumber1; 
     MessageBox.Show(ready); 
    } 

和控制檯輸出將是0 但以「 - 」爲負不減去兩個數字。 香港專業教育學院試圖逃脫它(不知道如果我沒有逃脫它的權利),它並沒有幫助:/

+0

所以你想減去兩個數字...?你能修復你的例子嗎?讓它成爲你的問題的一個適當的工作例子。 –

+0

「它將」 - 「作爲減去而不是減去兩個數字」不確定你的意思。 「預期產出也應該減去兩個變量」也非常模糊。嘗試重新措詞這些更清楚。你想要結果是一個像「32 - 」的字符串還是你想要它是一個整數? – AaronLS

+1

在我看來,你正在尋找[Expression Evaluator](http://csharpeval.codeplex.com/)。 –

回答

2

我想這可能是你希望完成的,但有點不清楚。這會減少數量並且否定它。因此,當你將前一個數字加到minus數字時,它實際上會減去。唯一的問題是你的ready變量看起來是一個字符串。

private void minus_Click(object sender, EventArgs e) 
{ 

    long minusnumber = 32; 

    ready = -minusnumber; 
} 

或許ready應該是很長的。當你得到用戶的輸入,你可以使用的TryParse:

string userText = "54"; 
long userInput; 
Int64.TryParse(userText, out userInput); 
ready -= userInput; 
2

從你寫的,在minus_Click變量ready是本地的minus_Click,而不是你可能預期全球它是。

相反的:

string ready = minusnumber + "-"; 

也許你的意思是:

ready = minusnumber + "-"; 

編輯

現在的問題是打補丁,似乎真正的問題是:「爲什麼MessageBox.Show(ready);顯示「32-32」而不是0?「如果該的問題,原因是你顯示的變量值ready。這是一個字符串。你從"32-"開始,然後添加"32"。這個字符串連接的結果是"32-32"。爲了執行算術評估,您需要編寫代碼來解析字符串並進行評估。或者找到爲包含算術表達式的字符串編寫了一個​​方法的人。

+0

oops在發佈時忘記放在外面。它是實際代碼中的局部變量。 – hurnhu

2

使用

string.concat(minusnumber , "-"); 

它可以幫助你。您可以在concat方法上使用n個對象。

0

對於化妝計算器必須使用波蘭符號或RPN

相關問題