首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我的C# if语句代码不能工作?

为什么我的C# if语句代码不能工作?
EN

Stack Overflow用户
提问于 2014-09-26 05:27:53
回答 3查看 249关注 0票数 0

我搞不懂为什么这句话不管用。

代码语言:javascript
复制
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#的菜鸟,所以你要尽可能地向菜鸟解释

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-09-26 05:30:29

字符串是不可变的,也就是说,更改字符串的方式是重新分配字符串。

代码语言:javascript
复制
textBox4.Text = textBox4.Text.Replace(".wav", ".xwm");

要知道的一种方法是查看函数的(替换)原型,它返回一个字符串,因此这可能意味着实例(即: textbox4.text )不会被更改。

票数 9
EN

Stack Overflow用户

发布于 2014-09-26 05:30:26

您正在对字符串调用Replace,但没有对结果执行任何操作。字符串在C#中是不可变的-任何听起来可能正在更改字符串的方法实际上只返回对新字符串的引用(如果不需要更改,则可能返回对旧字符串的引用)。因此,调用Replace (或类似的方法)然后忽略结果总是毫无意义的。

我怀疑你想:

代码语言:javascript
复制
textBox4.Text = textBox4.Text.Replace(".xwm", ".wav");

顺便提一下,我还会去掉== true,很可能提取文本框的所有读取访问:

代码语言:javascript
复制
// 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");
}

(我怀疑有更好的方法来表达你想要达到的目标,但目前我们还不知道这是什么.)

票数 5
EN

Stack Overflow用户

发布于 2014-09-26 05:29:47

我想你做错了下面的检查:-

  1. .Replace方法返回字符串,因此需要按以下方式编写它:-

.wav= textBox4.Text.Replace(".xwm",".wav");

  1. 在默认情况下,if语句将接受第一条语句,如果为真,则允许您输入。 因此,最终代码如下:

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");}

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26052646

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档