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がValue型として渡された場合、それはどうして私に答えとして「2」を与えるのでしょうか?
はい私はFunc2で新しいインスタンスを作成していますが、名前プロパティを変更した後、この新しく作成されたインスタンスを既に作成されたインスタンスに割り当てていますので、反映する必要があると思います –