所以我显然对编程很新,但我想弄清楚为什么这不起作用
我正在尝试使用字符串myname,并将Mr.添加到它的开头.我知道我可以做到这一点,myname = "Mr. " + myname但我正在努力了解如何使用方法来改变变量的值.那么,为什么这不会改变呢?
public class Program
{
public static void Main(string[] args)
{
string myname = "harry";
Console.WriteLine(myname); //output is harry
namechanger(myname); //this should modify harry to Mr. Harry
Console.WriteLine(myname); //output is still harry?
}
static string namechanger(string name)
{
name = "Mr. " + name;
return name;
}
}
Run Code Online (Sandbox Code Playgroud)
字符串是不可变的,并且通过值传递.每次创建字符串时,都不会更改.因此,与类的实例不同,您不能通过将字符串交给修改它的方法来修改字符串.
在这种情况下,由于您return修改了String in namechanger,所以您需要做的就是确保分配myname给该方法的结果; 像这样
myname = namechanger(myname);
Run Code Online (Sandbox Code Playgroud)
原始类型(int,float,long等),以这种方式工作,因为这样做struct实例-所以一定要寻找那些在未来,如果您不确定为什么当您将它传递到方法的结构的价值没有改变.
| 归档时间: |
|
| 查看次数: |
82 次 |
| 最近记录: |