怎么做 - 如果没有结果,结果= 0 C#

时间:2013-11-24 13:03:00

标签: c#

假设我有一个文本框和一个按钮,如何让该按钮将无结果(或在文本框中输入的内容)转换为结果0?

    private void button1_Click(object sender, EventArgs e)
    {
        if (this.dateTimePicker1.Text != "")
        {
            listBox1.Items.Add(this.dateTimePicker1.Text);
        }
        textBox2.Text += " Woman";
        if (this.textBox2.Text != "")
        {
            listBox1.Items.Add(this.textBox2.Text);
        }
        textBox3.Text += " People";
        if (this.textBox3.Text != "")
        {
            listBox1.Items.Add(this.textBox3.Text);
        }
    }

如果在textBox2或textBox3中没有输入任何内容,则会将结果转换为“女人”或“人物”,但我希望它是“0女人”& “0人” - 如果没有输入文本框。 任何人都可以帮助我吗?

5 个答案:

答案 0 :(得分:1)

这是我对DRY做的事情(不要重复自己)

// Make a list of textboxes and string
List<Tuple<TextBox, String>> textBoxesTest = new List<Tuple<TextBox, String>>();

// Add the information
textBoxesTest.Add(new Tuple<TextBox, String>(textBox2, "Woman"));
textBoxesTest.Add(new Tuple<TextBox, String>(textBox3, "People"));

// Go through the list
foreach(var tuple in textBoxesTest) {
   // tuple.Item1 is a TextBox
   // tuple.Item2 is a String 

   if(String.IsNullOrEmpty(tuple.Item1.Text)) {
      tuple.Item1.Text = String.Format("0 {0}", tuple.Item2);
   } // if end
   else { /* do some other with it */ }
} // foreach end

请勿使用str == ""测试字符串是否为空。使用String.IsNullOrEmpty(str)方法检查此情况。它更快,因为str == ""将创建一个对“”的新String引用。 null或Empty具有不会创建字符串实例的条件value == null || value.Length == 0;

也不使用字符串连接,因为每个都将写入RAM,然后每次使用时都需要连接。最好使用String.Format(str, args[])方法。

上面的代码很好地解决了可维护性问题。您只需要在添加另一个文本框“执行相同操作”时向列表中添加元组,而不是通过复制/粘贴代码添加if / else算法。这将是一个常见的错误来源。

答案 1 :(得分:0)

在函数的最后一行之前添加以下内容,以便不在textBox

中添加任何内容
 textBox2.Text = "";
 textBox3.Text = "";

答案 2 :(得分:0)

添加if-else以检查文本框文本是否为null,然后直接更改文本而不是将文本附加到现有文本。喜欢这个

 if (textBox2.Text == "" && textBox3.Text == "")
 {
     textBox2.Text = "0";
     textBox3.Text = "0";
 }

答案 3 :(得分:0)

你非常接近!测试textBox2和textBox3的内容,然后向其附加额外的文本:

if (textBox2.Text == "")
{
  textBox2.Text = "0";
}
textBox2.Text += " Woman";

答案 4 :(得分:0)

这种情况有两种可能性。

  1. 通过确保空字符串不会过去来在文本框(前端)侧处理此问题。如果用户未在文本框中输入任何内容,则应将0设置为该文本框的默认值或占位符。因此,如果用户没有输入任何内容,则仍会传递默认值(在本例中为0)。
  2. 另一个选项是在处理函数上处理它。只需检查文本框的值是否为空,然后将其设置为0.