static void IWantSideEffect2(ref StudentC stuc) { stuc = new StudentC() { Name = "Xing" }; //如果方法内不创建新的对象,在使用效果上 与传值参数效果相同,只是机理不同 Console.WriteLine("引用类型引用参数的方法:{0},{1}", stuc.Name, stuc.GetHashCode()); }
//使用ref 修饰声明的形参 不创建副本 //变量在作为ref参数调用时,必须事先赋值; public void 展示() { int Y = 99; IWantSideEffect(ref Y);//值类型引用参数 //显式申明IW方法处理的是Y所指向的同一个地址; StudentC outterStu = new StudentC() { Name = "Xin" }; Console.WriteLine("引用类型引用参数的方法处理前:{0},{1}", outterStu.Name, outterStu.GetHashCode()); Console.WriteLine("___________"); IWantSideEffect2(ref outterStu); Console.WriteLine("引用类型引用参数的方法处理后:{0},{1}", outterStu.Name, outterStu.GetHashCode()); }