2016-01-19 26 views
8

C# 'da yeni başlayan biriyim. Asp masaüstü yardımıyla Microsoft Desktop hesap makinesi gibi bir web hesap makinesi yapıyorum. Ama bir yere sıkıştım. Benim Plus için kod, eksi, çarpma veya div gibidir:Metin kutusu metninin son karakterini nasıl bulabilirim?

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

Ama eksi gibi tüm işlemler için bu koşulu denetlemek çarpma ve bölme istiyorum. Artı, Eksi, Çarpma veya Div işaretleri metin kutusunda görünmesini istemiyorum.

+5

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

+0

Regex tarafından kontrol –

cevap

1

Aşağıdaki gibi bir şey yapabilirsiniz: herhangi operatör daha sonra metin kutusu bunları kaldırmak ise görünüm durumuna

  • karakter atama operatörü dayanarak

    1. Özü son karakteri
    2. Son olarak işlemi yapmak

      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

    Sen sürekli bir dize tüm operatörler depolamak ve son karakteri o dizede yer alan olup olmadığını kontrol edebilirsiniz:

    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"] = "+"; 
        } 
    }