class Program
{
static void Main(string[] args)
{
A a = new A();
a.print();
}
}
class Employee
{
public string Name { get; set; }
}
class A
{
public void print()
{
Employee emp = new Employee { Name = "1" };
Func2(emp);
Console.WriteLine(emp.Name);
Console.ReadLine();
}
private void Func2(Employee e)
{
Employee e2 = new Employee { Name = "3" };
e = e2;
}
}
運行上述程序後,我得到「1」作爲答案,我無法理解如何?誰能解釋,根據我的答案應該是「3」 -Thanks解釋下面程序的輸出?
但是,當我叫其定義如下FUNC1方法: -
private void Func1(Employee e)
{
e.Name = "2";
}
我得到「2」作爲回答。現在,如果e作爲值類型傳遞,那麼它是如何給我「2」作爲答案?
是的我在Func2中創建了一個新的實例,但是在更改了name屬性後,我將這個新創建的實例分配給了已經創建的實例,這就是爲什麼我認爲它應該反映 –