C# 在C中更改数组中的元素#
这两行代码之间有什么区别C# 在C中更改数组中的元素#,c#,C#,这两行代码之间有什么区别 arrayOneF[i+1]。替换(arrayOneF[i+1],“x”) arrayOneF[i+1]=arrayOneF[i+1]。替换(arrayOneF[i+1],“x”) 第二个代码给出了所需的结果,而第一个代码执行了该行,但没有给出我想要的结果。为什么我必须使元素[I+1]等于代码?第一位的代码是否足以对元素进行更改?C#中的字符串是不可变的Replace返回一个新字符串;它不会以任何方式修改原始字符串。因此,在第一个示例中,您创建一个新字符串并立即丢弃它。
arrayOneF[i+1]。替换(arrayOneF[i+1],“x”)代码>
arrayOneF[i+1]=arrayOneF[i+1]。替换(arrayOneF[i+1],“x”)代码>
第二个代码给出了所需的结果,而第一个代码执行了该行,但没有给出我想要的结果。为什么我必须使元素[I+1]等于代码?第一位的代码是否足以对元素进行更改?C#中的字符串是不可变的
Replace
返回一个新字符串;它不会以任何方式修改原始字符串。因此,在第一个示例中,您创建一个新字符串并立即丢弃它。Replace返回任何数据的新实例。它不会替换源数据中的值。这就是为什么在第一个示例中,替换完成并作为新值返回。因为它没有分配给任何东西,所以它丢失了
在第二种情况下,您实际上将值分配回相同的数组位置,捕获替换的结果。第一行调用
Replace
方法,对arrayOneF[i+1]
中存储的任何对象使用提供的参数-从代码看,它似乎是一个字符串
结果将作为字符串返回并丢弃,因为它未被使用。原始字符串没有更改,因为c#中的Sting是不可变的
第二行执行相同的操作,只有retun值被分配给数组中的同一个插槽。1调用数组中某个对象的方法。2使用该方法调用的返回值替换数组中的对象。问题的目的是让我们猜猜你想在这里做什么?你曾经被一页文档咬过,现在你害怕自己阅读文档吗?我很同情,但唯一要做的就是回到那匹小马上,牛仔!试试这个:
string a=“food”;a、 替换(“o”、“e”);控制台写入线(a)代码>。控制台将写入食物
。另一方面,string a=“food”;字符串b=a。替换(“o”、“e”);控制台写入线(b)
将写入提要
。这是正确答案。这里的误解在于替换方法的性质;它与数组无关。编辑:嗯,其他答案也是正确的,但这是对问题最清楚的陈述。