private void ModifyObject(string obj )
{
obj = "999";
} private void button3_Click(object sender, EventArgs e)
{
string str1 = "John";
ModifyObject(str1);
Console.WriteLine(str1); //John
}
为什么: 在 button3中调用方法ModifyObject(),字符串不是引用类型 吗,为什么在控制台输出时值是John ,而不是999.
string 是一个特殊的引用类型,
基本上可以当作值类型来用
objRef(ref str1);
private void ModifyObject(ref string obj )
{
obj = "999";
} private void button3_Click(object sender, EventArgs e)
{
string str1 = "John";
ModifyObject(ref str1);
Console.WriteLine(str1); //John
}
s1="3";同是一个变量,但是在内存里面却分配了两次内存,这也是为什么大量字符串操作时,建议使用stringbuilder的原因。