Как мы все знаем, объект классов С# рассматривается как ссылки, поэтому что происходит, когда вы передаете ссылочный объект в качестве ссылки на метод? Скажем, у нас есть:
public class A { ... }
а затем:
public void F(ref A a) { ... }
Означает ли компилятор, что a
уже является ссылочным типом и сохраняет его таким образом, или он создает новую ссылку на этот объект?
И что, если у нас есть что-то вроде этого:
public void F(ref A a)
{
F(ref a);
}
В этом коде, помимо очевидного StackOverflowException
, компилятор создает ссылку на ссылку... для ссылки на a
, который является ссылочным объектом?