class Class1
{
private string str = "Class1.str";
private int i = 0; static void StringConvert(string str)
{
str = "string being converted.";
} static void StringConvert(Class1 c)
{
c.str = "string being converted.";
}
static void Main()
{
string str = "str";
Class1 c = new Class1();
StringConvert(str);
StringConvert(c);
Console.WriteLine(str);
Console.WriteLine(c.str);
}
}
如上,Console.WriteLine(str)和Console.WriteLine(c.str)的输出结果分别是“str” 与“string being converted”我的疑问是StringConvert(str)和StringConvert(c)方法中传入的值都是引用类型,调用方法之后,为何Console.WriteLine(str)却是输出“str” ??
{
private string str = "Class1.str";
private int i = 0; static void StringConvert(string str)
{
str = "string being converted.";
} static void StringConvert(Class1 c)
{
c.str = "string being converted.";
}
static void Main()
{
string str = "str";
Class1 c = new Class1();
StringConvert(str);
StringConvert(c);
Console.WriteLine(str);
Console.WriteLine(c.str);
}
}
如上,Console.WriteLine(str)和Console.WriteLine(c.str)的输出结果分别是“str” 与“string being converted”我的疑问是StringConvert(str)和StringConvert(c)方法中传入的值都是引用类型,调用方法之后,为何Console.WriteLine(str)却是输出“str” ??
//将str对象的引用存在局部变量str中, 然后在方法内 将局部变量指向一个新的string对象,所以对str="str"无影响