那下面这段代码呢 public class TypeRef { public string a = string.Empty ; public TypeRef(string i) { a = i; } }TypeRef ref1 = new TypeRef("a"); TypeRef ref2 = ref1; Console.WriteLine(ref2.a); ref2.a = "b"; Console.WriteLine(ref1.a);
public class TypeRef { public string a = string.Empty ; //TypeRef的数据成员 public TypeRef(string i) { a = i; //使a指向传入的字符串 } } TypeRef ref1 = new TypeRef("a"); //创建一个新的TypeRef对象,此时ref1.a指向在此处传入的字符串 TypeRef ref2 = ref1; //ref2与ref1指向同一个对象 Console.WriteLine(ref2.a); ref2.a = "b"; /*修改ref2.a,也即修改ref1.a,作用是使这个string类型的数据成员指向一个新的字符串,而非修改了原来的字符串*/ Console.WriteLine(ref1.a);
需要这个培训视频的朋友请联系 QQ 936652114
C第一个相当于 d=c="c",当然输出"C"啊
第二个c又没改变,当然也是输出c的值"c"啊
public class TypeRef
{
public string a = string.Empty ;
public TypeRef(string i)
{
a = i;
}
}TypeRef ref1 = new TypeRef("a");
TypeRef ref2 = ref1;
Console.WriteLine(ref2.a);
ref2.a = "b";
Console.WriteLine(ref1.a);
public class TypeRef
{
public string a = string.Empty ; //TypeRef的数据成员
public TypeRef(string i)
{
a = i; //使a指向传入的字符串
}
} TypeRef ref1 = new TypeRef("a"); //创建一个新的TypeRef对象,此时ref1.a指向在此处传入的字符串
TypeRef ref2 = ref1; //ref2与ref1指向同一个对象
Console.WriteLine(ref2.a);
ref2.a = "b"; /*修改ref2.a,也即修改ref1.a,作用是使这个string类型的数据成员指向一个新的字符串,而非修改了原来的字符串*/
Console.WriteLine(ref1.a);
而为什么“修改object d时不修改c”?
纠正,没有两个实例,只有两个变量,实例只有一个,调用new的时候生成的。