NSj*_*nas 21 .net c# dictionary reference-type
我有一个Dictionary<int, Product>.如果将同一产品添加到多个密钥,则为每个密钥存储该对象的新实例?或者只是对原始对象的引用?
这个系列非常大,每个产品都有1-10个钥匙.我主要关心的是内存分配.
不,它应该使用对原始对象的相同引用。
但是,如果 Dictionary 被序列化/反序列化,我并不完全确定它的行为方式。
将Dictionary存储您传递给它的密钥值的副本。它或任何其他集合/容器都不可能存储对任何值的引用,因为容器可能比您尝试存储在其中的变量寿命更长。
现在,正如其他人所说,如果值的类型是引用类型,则变量的值只是一个引用,因此您只需存储对该变量的引用的副本。如果字典值的类型是值类型,则将复制实际值。