Как мы все знаем, классы в .NET передаются по ссылке и структурируются по значению.Как классы могут передаваться по ссылке в .NET?
В небезопасном коде вы можете иметь указатели на структуры, но не на классы, так как они перемещаются GC. Например, если у вас есть указатель на массив, вы либо должны поместить его в оператор fixed
(если вы выделили его в кучу), либо stackalloc
(для размещения в стеке).
С учетом сказанного, как можно передать классы по ссылке, если они перемещены GC?
@SamAxe Все параметры передаются по значению по умолчанию, включая объект –
@ johnny5: err, yes. Моя ошибка в этой части. Я его подкорректирую. –
«classes» - это языковая конструкция, которая не имеет значения за пределами исходного кода. Класс компилируется в тип. Тип может быть создан как объект и передан. –