我在將變量的值賦給c#中的字典時遇到了一些麻煩。c#字典賦值變量的值
這裏是例子。我有以下類:
public class test_class
{
public int val1;
public int val2;
}
而且我運行下面的代碼:
Dictionary<int, test_class> tmp_dict = new Dictionary<int, test_class>();
tmp_test.val1 = 1;
tmp_test.val2 = 1;
tmp_dict.Add(1, tmp_test);
tmp_test.val1 = 2;
tmp_test.val2 = 2;
tmp_dict.Add(2, tmp_test);
foreach (KeyValuePair<int, test_class> dict_item in tmp_dict)
{
Console.WriteLine("key: {0}, val1: {1}, val2: {2}", dict_item.Key, dict_item.Value.val1, dict_item.Value.val2);
}
現在,我將有望得到下面的輸出(鍵1與1的值)
key: 1, val1: 1, val2: 1
key: 2, val1: 2, val2: 2
,但我得到以下一(key1的也得到了值爲2):
key: 1, val1: 2, val2: 2
key: 2, val1: 2, val2: 2
它看起來像這個任務是通過引用,而不是通過值... 也許你可以幫助我分配類變量的實際值,而不是它的參考?
這是因爲爲test_class是一個典型的參考即使用不同的變量。 –