众所周知,C#classes对象被视为引用,那么当您将引用对象作为对方法的引用传递时会发生什么?说我们有:
public class A { ... }
Run Code Online (Sandbox Code Playgroud)
然后:
public void F(ref A a) { ... }
Run Code Online (Sandbox Code Playgroud)
编译器是否发现它a已经是一个引用类型并保持这种方式,或者他创建了一个对该对象的新引用?
如果我们有这样的事情怎么办:
public void F(ref A a)
{
F(ref a);
}
Run Code Online (Sandbox Code Playgroud)
在这段代码中,除了显而易见之外StackOverflowException,编译器是否创建了对引用的引用...以引用a哪个是引用对象?