将1个实例插入另一个实例

时间:2013-12-10 15:59:24

标签: c#

有点愚蠢的问题,但它让我感到困惑。

之间是否存在差异:

Dictionary<short, String> details= new <short, String>()
Dictionary<short, String> tmpDetails = db.getDetails();

foreach (var tmpDetails in tmpDetails )
{
     details.Add(tmpDetails.Key, tmpDetails.Value);
}

Dictionary<short, String> details= new <short, String>()
Dictionary<short, String> tmpDetails = db.getDetails();

details = tmpDetails;

如果我将1个实例插入另一个实例?

1 个答案:

答案 0 :(得分:4)

在您的第一个示例中,您将项目从一个Dictionary复制到另一个{{1}};它们是单独的实例。如果向一个实例添加值,则另一个不受影响。

在第二个示例中,您使用两个变量引用相同的实例。如果您通过一个引用添加值,则另一个引用会看到其他值。

将它们视为方框 - 在第一种情况下,您有两个方框,并且将项目从一个方框复制到另一个方框。

在第二个示例中,它们是相同的框 - 两个引用都在内部看到相同的项目,如果添加/删除/修改任何内容,则两者都会受到影响。