Comments 2
Замена и возврат идут в одном методе, между ними нет ни выхода, ни вызова сборки мусора. Если оставить объект в таком виде, сборщик мусора прочитает его поля по описанию чужого типа и уронит процесс.
Сборщик мусора следует своими путями, поэтому то, что всё происходит в одном методе без сторонних вызовов, гарантией от вызова GC не является, Так что, если вдруг действительно понадобится подменить тип объекта, лучше явно запретить сборку мусора с помощью TryStartNoGCRegion/EndNoGCRegion.
А ещё лучше IMHO так вообще не делать.
Sign up to leave a comment.
А чё, так можно было? Недокументированный C#