今天写C#代码时,遇到一个值类型的坑,导致其他功能代码异常,坑虽小但影响却很大,重发现问题到排除问题,调试十几分钟,在此记录。
  伪代码如下:

Struct A
{
 public string Name;
}

var dic=new Dictionary<int,A>();
dic.add(0,new A(){ Name="小王"});

A a;
dic.TryGetValue(0,out a);
a.Name="小张";

Print(dic[0].Name);

  试问:最终打印结果如何?

结果:小王
原因:Struct是值类型