我使用此代码但它无效。我在这做错了什么?
private void button_input_Click(object sender, EventArgs e)
{
string input = textbox_input.Text;
string output = label_output.Text;
output = input.Replace("a", "4");
output = input.Replace("s", "5");
output = input.Replace("e", "3");
output = input.Replace("v", @"\/");
output = input.Replace("V", @"\/");
output = input.Replace("m", "|V|");
output = input.Replace("M", "|V|");
input = output;
}
答案 0 :(得分:3)
您应该将output
分配回textbox
:
label_output.Text = output;
它不起作用的原因是虽然string
是引用类型,但它是不可变的。这意味着当您使用赋值运算符(=
)时,将创建一个包含该值的新对象。无论何时对字符串应用任何更改,您实际上都是使用新值创建新实例。
因此,input
不是对textbox_input.Text
相同字符串的引用。而改变一方并不会影响另一方。同样适用于output
和label_output.Text
。
作为旁注,Replace
返回一个字符串,您可以链接调用以获得更流畅的用法:
label_output.Text - textbox_input.Text.Relace("","").Replace("","").....;