主要是为了解决在使用引用类型的时候,传参到函数内进行了参数的赋值,返回另外一个值导致传参的值被修改了;
1.解决方案,使用序列化的方式进行赋值可以解决该问题
public class Meachin { public List trains { get; set; } } public class Train { public string Name { get; set; } }
static void test(Meachin meachin) { var list = new List();
foreach (var item in meachin.trains) { var ss = JsonConvert.SerializeObject(item); Train refundApply = JsonConvert.DeserializeObject(ss);
refundApply.Name = "xiaoma";
}
}
static void Main(string[] args)
{
Train train = new Train(); train.Name = "小李";
var list =new List();
list.Add(train);
Meachin meachin = new Meachin(); meachin.trains = list;
test(meachin);
var tt = meachin;
}
该代码可以建一个控制台程序运行一下,有问题的话可以给我留言