2016-07-06 60 views
-4

我在C#代码已经Dictionary对象:dictEmployees; --->C#输出参数和字典

它具有所有Employees.Employee类的列表中有两个属性... ID和Salary.Lets比方说,一开始,这个系列有50K员工ID的工资现在1.

Employee employee = new Employee(); 
dictEmployees.TryGetValue(1, out employee); 

,如果我修改员工在其他一些方法的薪水,我看到的薪水也被反映在员工的对象词典。 请问这是预期吗?

谢谢。

+1

是的,如果'Employee'是一个* reference *类型,即它已被声明为'class Employee ...' –

+2

http://stackoverflow.com/questions/5057267/what-is-the-difference-之间-A-引用类型 - 值型在-C – DVK

回答

1

是的,因为Employee是引用类型,当您传递引用类型时,只有引用被传递,所以当您的方法对该对象执行某些修改时,它会反映到原始类型中。但是另一方面当你通过value类型的值拷贝通过修改后的值不会反映到原来的值上。