用Microsoft C替换变量#

时间:2011-09-06 19:48:12

标签: c#

无法将“z”替换为下面的代码。任何帮助都是极好的。谢谢

//Generate Nut Part Number
textBox7.Text = "MLA028Z-CAN-" + comboBox2.Text + "R" + "-" + comboBox3.Text + "z" + "0";

//Replaces z Variable in Lead Screw Assembly Part Number
if (comboBox1.Text == "0")
    textBox6.Text.Replace("z", "B");
else if (comboBox1.Text == "1")
    textBox7.Text.Replace("z", "D");
else if (comboBox1.Text == "2")
    textBox7.Text.Replace("z", "D");
else if (comboBox1.Text == "3")
    textBox7.Text.Replace("z", "D");
else if (comboBox1.Text == "4")
    textBox7.Text.Replace("z", "D");
else if (comboBox1.Text == "5")
    textBox7.Text.Replace("z", "D");
else if (comboBox1.Text == "6")
    textBox7.Text.Replace("z", "D");
else if (comboBox1.Text == "7")
    textBox7.Text.Replace("z", "B");

6 个答案:

答案 0 :(得分:7)

问题是Replace()返回新的string并进行了替换。它不会更新它运行的string,因此您必须自己执行此操作:

if (comboBox1.Text == "0") textBox6.Text = textBox6.Text.Replace("z", "B");

进行更改(即将结果分配回textBox6.Text / textBox7.Text)将使您的代码按预期工作。

答案 1 :(得分:4)

修改每个

textBox7.Text.Replace("z", "D");

textBox7.Text = textBox7.Text.Replace("z", "D");

答案 2 :(得分:1)

String在.NET中是不可变的,因此textBox7.Text = textBox7.Text.Replace("z", "D")

答案 3 :(得分:0)

由于你并没有真正使用分配给文本框的值,并且在你的if中只有两个不同的场景我已经重新安排了一些代码。然而,如其他地方所述,主要问题是您没有将替换结果分配回文本属性

 //Replaces z Variable in Lead Screw Assembly Part Number
 var replace = "z";
 int combo;
 if(int.TryParse(comboBox1.Text, out combo)){ 
    if (combo == 0) textBox6.Text = textBox6.Text.Replace("z", "B");
    else if (combo >0 && combo < 7) replace = "D";
    else if (combo == 7) replace = "B";
 }
//Generate Nut Part Number
 textBox7.Text = "MLA028Z-CAN-" + comboBox2.Text + "R" + "-" + comboBox3.Text + replace + "0";

答案 4 :(得分:0)

其他人已经回答了主要问题,但如果有以下情况,我还建议更换所有其他问题。

var oneToSix = Enumerable.Range(1, 7).Select(x => x.ToString());
if (comboBox1.Text == "0") textBox6.Text = textBox6.Text.Replace("z", "B");
if (comboBox1.Text == "7") textBox7.Text = textBox7.Text.Replace("z", "B");
else if (oneToSix.Contains(comboBox1.Text)) textBox7.Text = textBox7.Text.Replace("z", "D");

答案 5 :(得分:-2)

除此之外,这应该是一个开关声明:

switch(comboBox1.Text){
    case "0":
        textBox6.Text = textBox6.Text.Replace("z", "B");
        break;
    case "7":
        textBox7.Text = textBox7.Text.Replace("z", "B");
        break;
    case "1":
    case "2":
    case "3":
    case "4":
    case "5":
    case "6":
         textBox7.Text = textBox7.Text.Replace("z", "D");
         break;
}