我搞不懂为什么这句话不管用。
if (textBox2.Text.Contains(".xwm") && textBox4.Text.Contains(".xwm") == true)
{
textBox4.Text.Replace(".xwm", ".wav");
}
else if (textBox2.Text.Contains(".wav") && textBox4.Text.Contains(".wav") == true)
{
textBox4.Text.Replace(".wav", ".xwm");
}它应该做的是将textBox4中的文件扩展名替换为相反的文件扩展名--在本例中,我正在制作XWM到Wav转换器。因此,如果textbox2和textBox4包含相同的文件扩展名,它将将textBox4中的文件类型更改为其他文件类型。
为什么它不起作用。
PS:我是C#的菜鸟,所以你要尽可能地向菜鸟解释
发布于 2014-09-26 05:30:29
字符串是不可变的,也就是说,更改字符串的方式是重新分配字符串。
textBox4.Text = textBox4.Text.Replace(".wav", ".xwm");要知道的一种方法是查看函数的(替换)原型,它返回一个字符串,因此这可能意味着实例(即: textbox4.text )不会被更改。
发布于 2014-09-26 05:30:26
您正在对字符串调用Replace,但没有对结果执行任何操作。字符串在C#中是不可变的-任何听起来可能正在更改字符串的方法实际上只返回对新字符串的引用(如果不需要更改,则可能返回对旧字符串的引用)。因此,调用Replace (或类似的方法)然后忽略结果总是毫无意义的。
我怀疑你想:
textBox4.Text = textBox4.Text.Replace(".xwm", ".wav");顺便提一下,我还会去掉== true,很可能提取文本框的所有读取访问:
// Rename these as appropriate - and rename the textBox* variables so the names
// explain the purpose.
string source = textBox2.Text;
string target = textBox4.Text;
if (source.Contains(".xwm") && target.Contains(".xwm"))
{
textBox4.Text = target.Replace(".xwm", ".wav");
}
else if (source.Contains(".wav") && target.Contains(".wav"))
{
textBox4.Text = target.Replace(".wav", ".xvm");
}(我怀疑有更好的方法来表达你想要达到的目标,但目前我们还不知道这是什么.)
发布于 2014-09-26 05:29:47
我想你做错了下面的检查:-
.wav= textBox4.Text.Replace(".xwm",".wav");
if (textBox2.Text.Contains(".xwm") & textBox4.Text.Contains(".xwm")) { textBox4.Text = textBox4.Text.Replace(".xwm",".wav");} else (textBox2.Text.Contains(".wav") & textBox4.Text.Contains(".wav")) { textBox4.Text = textBox4.Text.Replace(".wav",".xwm");}
https://stackoverflow.com/questions/26052646
复制相似问题