【发布时间】:2019-01-17 04:56:17
【问题描述】:
我以下列方式使用了 ref。那么当在第 5 个方法中创建一个新对象时,访问是否会一直到 main 方法中的原始 emp 并在那里创建一个新对象?如果是的话,有没有一种方法可以在没有太多迭代的情况下实现相同的功能,即它应该在第 5 个方法本身中创建一个新对象,并且更改也应该反映在主要方法的 emp 中?
public static void Main(string[] args)
{
Employee emp=new Employee();
emp.id=10;
Program p=new Program();
p.Method1(ref emp);
Console.WriteLine(emp.id);
Console.ReadKey();
}
public void Method1(ref Employee emp)
{
Method2(ref emp);
}
public void Method2(ref Employee emp)
{
Method3(ref emp);
}
public void Method3(ref Employee emp)
{
Method4(ref emp);
}
public void Method4(ref Employee emp)
{
Method5(ref emp);
}
public void Method5(ref Employee emp)
{
emp=new Employee();
emp.id=20;
}
【问题讨论】:
-
你尝试的时候发生了什么?我的意思是,您已经拥有代码。
-
@mjwills 我想知道代码在这个特定场景中是如何在内部工作的,以及我是否可以在不使用 ref 关键字的情况下复制这个场景!