如果文本框不为空,如何传递可修改的C#

时间:2016-03-25 22:48:33

标签: c#

如果文本框不为空,我怎样才能分配变量?

我正试图从文本框中取出文本&在前缀中添加一个字母,如果它们不为空,则将文本分配给字符串变量并将其写入文本文件。 如果文本框为空,则不应创建变量,并从文本文件中省略该变量。 这是使用其中的所有变量创建的主字符串的示例:

5012G65 P9811Y10C2F4H4Q4 S U4 V E2 I T7 W

问题是文本框是空的,前缀字母仍然输出到文本文件(粗体)(如果是空的话,它根本不应出现)。

提前谢谢你。

我的代码:

    if (radioButton1.Checked == true)
{

string X = "X" + textBox1.Text.ToString();
string C = "C" + textBox2.Text.ToString();
string F = "F" + textBox3.Text.ToString();
string H = "H" + textBox4.Text.ToString();
string Q = "Q" + textBox5.Text.ToString();
string S = "S" + textBox6.Text.ToString();
string U = "U" + textBox7.Text.ToString();
string V = "V" + textBox8.Text.ToString();
string E = "E" + textBox9.Text.ToString();
string I = "I" + textBox10.Text.ToString();
string T = "T" + textBox11.Text.ToString();
string W = "W" + textBox12.Text.ToString();

    string P9811A = string.Format("G65Y9811{0}{1}{2}{3}{4}{5}{6}{7}{8}{9}{10}{11}", X, C, F, H, Q, S, U, V, E, I, T, W);

    string[] lines = {"5000O8011",
"5001(OSAMPLE)",
"5007(SINGLE)",
"5008(CHANGE ALL VALUES BEFORE RUNNING)",
"5012" + P9811A,
"5013M01",
"(CORRECT ALL )",

};
          System.IO.File.WriteAllLines(@"C:\WriteLines.txt", lines);

    }

4 个答案:

答案 0 :(得分:1)

使用StringBuilder并根据需要附加。

在将TextBox添加到StringBuilder之前测试每个var P9811A = new StringBuilder("G65Y9811"); if (textBox1.Text != "") P9811A.Append("X" + textBox1.Text); if (textBox2.Text != "") P9811A.Append("C" + textBox2.Text); // and so on... 是否为空。

P9811A.ToString()

如果您需要正在构建的字符串的值,请使用if (!String.IsNullOrWhiteSpace(textBox1.Text)) { X = "X" + textBox1.Text.ToString(); }

答案 1 :(得分:0)

使用String.IsNullOrEmpty()方法(re:https://msdn.microsoft.com/en-us/library/system.string.isnullorempty(v=vs.110).aspx),如下所示:

if(!String.IsNullOrEmpty(textBox1.Text))...//your code her

或者,从 .NET 4 框架开始,您可以使用其他方法:String.IsNullOrWhiteSpace()

希望这可能会有所帮助。

答案 2 :(得分:0)

 string X = string.IsNullOrWhiteSpace(textBox1.Text) ? "" : "X" + textBox1.Text;
 string C = string.IsNullOrWhiteSpace(textBox2.Text) ? "" : "C" + textBox2.Text;
 ......

https://msdn.microsoft.com/en-us/library/system.string.isnullorwhitespace(v=vs.110).aspx

答案 3 :(得分:0)

使用Conditional Operator

{{1}}

并重复所有其他输入

String.IsNullOrWhiteSpace是首选,因为它不再需要测试由所有空格或其他字符组成的字符串,例如制表符和换行符,而且您也不需要在这些字符串上调用Trim来删除它们。 ..

  

空白字符由Unicode标准定义。该   IsNullOrWhiteSpace方法解释返回的任何字符   传递给Char.IsWhiteSpace方法时的值为true   白色空间。