2013-12-10 80 views
0

有點愚蠢的問題,但它讓我困惑。插入1個實例到另一個

有沒有之間的差異:

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個實例到另一個?

+0

我不認爲代碼編譯。新關鍵字後面的字典聲明是錯誤的。 –

回答

4

在你的第一個例子中,你是複製項目從一個Dictionary到另一個;他們是不同的實例。如果您將值添加到一個實例,則另一個不受影響。

在你的第二個例子中,你是引用與兩個變量相同的實例。如果通過一個引用添加值,則其他引用會看到其他值。

把它們想象成盒子 - 在第一種情況下,你有兩個盒子,並且從一個盒子複製到另一個盒子。

在第二個示例中,它們是同一個框 - 兩個引用都看到裏面的相同項目,並且如果添加/刪除/修改了任何內容,它們都會受到影響。

+0

是的,你說得對,thx – susparsy

相關問題