我在将变量的值赋给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是一个典型的参考即使用不同的变量。 –