ConcurrentDictionary<int, List<a>> dic = new ConcurrentDictionary<int, List<a>>();
dic.TryAdd(1, null);
List<a> val;
dic.TryGetValue(1, out val);
//可以存在value为null的项
val = new List<a>();
val.Add(new a() {val="1111" });
//此时dic中的key=1的value未改变
List<a> val2;
dic.TryGetValue(1, out val2);
dic.Clear();
dic.TryAdd(1,val2);
val2.Add(new a() { val = "1111" });
//此时key=1中的value以改变
TryGetValue方法为copy,out出的对象为不同的内存空间
TryAdd方法为指针赋值,指向的相同内存空间
class a
{
public string val { get; set; }
}