2016-01-19 10 views
8

私はC#の初心者です。私はasp.netの助けを借りて、Microsoft Desktop電卓のようなWeb電卓を作っています。しかし、私は1つの場所で立ち往生しています。テキストボックステキストの最後の文字はどのようにして見つけることができますか?

protected void btnPlus_Click(object sender, EventArgs e) 
{ 
    if (txtBox1.Text.EndsWith("+")) 
    { 
     txtBox1.Text = txtBox1.Text; 
    } 
    else 
    { 
     txtBox1.Text = txtBox1.Text + "+"; 
     ViewState["Operation"] = "+"; 
    } 
} 

しかし、私は、マイナスのようなすべての操作のために、この状態を確認乗算し、分割したい:プラス、マイナス、乗算やdivのための私のコードは次のようです。私はプラス、マイナス、掛け算、またはDivの記号がテキストボックスに表示されないようにします。

+5

'txtBox1.Text [txtBox1.Text.Length - 1]'? –

+0

Regexで確認 –

答えて

1

あなたは次のように行うことができます:それはどのオペレータはその後、テキストボックスから削除された場合は、ビューステート

  • に文字代入演算子をもとに

    1. エキス最後の文字
    2. 最後に操作します

      if (txtBox1.Text != "") 
           { 
            char last_char = txtBox1.Text[txtBox1.Text.Length - 1]; 
            switch (last_char) 
            { 
             case '+': 
              ViewState["Operation"] = "+"; 
              txtBox1.Text.Remove(txtBox1.Text.Length - 1); 
              break; 
             case '-': 
              ViewState["Operation"] = "-"; 
              txtBox1.Text.Remove(txtBox1.Text.Length - 1); 
              break; 
             // do the same for all operators 
             default: 
      
              break; 
            } 
           } 
      
  • 3

    あなたは定数文字列内のすべての演算子を保存し、最後の文字は、その文字列に含まれているかどうかを確認することができます

    private const string OPERATORS = "+-/*"; 
    protected void btnPlus_Click(object sender, EventArgs e) 
    { 
        if (string.IsNullOrEmpty(txtBox1.Text) || // check if string is empty 
         OPERATORS.Contains(txtBox1.Text.Last())) // or if last character is a operator 
        { 
         txtBox1.Text = txtBox1.Text; 
        } 
        else 
        { 
         txtBox1.Text = txtBox1.Text + "+"; 
         ViewState["Operation"] = "+"; 
        } 
    } 
    
    関連する問題