C# 引用变量在方法内部给引用变量赋值,方法结束后引用变量恢复为初始值
示例代码:
static void Main(string[] args)
{
ResultModel res = new ResultModel();
res.code = 0;
res.msg = "初始值";
OtherMehod(res);
Console.WriteLine(res.msg);
Console.Read();
}
public static void OtherMehod(ResultModel res)
{
ResultModel newRes = new ResultModel();
newRes.code = 20;
newRes.msg = "OtherMehod Change res";
res = newRes;
}
运行结果:
分析:Main方法传递了一个引用变量res给方法OtherMehod,在OtherMehod内部把自己方法内部的新ResultModel对象的引用赋值给传递过来的res,当OtherMehod方法结束后,newRes被回收了,导致在Main方法里res又恢复为初始值;