Допустим, у меня есть управляемый тип Foo
:
ref class Foo
{};
И управляемый тип Bar
:
ref class Bar
{
Foo foo;
};
Обратите внимание, что Bar
не содержит Foo^
, но a Foo
.
Предположим, что Bar
равно gcnew
'd.
Это разрешено?
Компилируется без предупреждения, но документация гласит:
Типы ссылок (ref) могут быть созданы только в управляемой куче, но не в стеке или в собственной куче. Типы значений могут быть созданы в стеке или управляемой куче.
Я предполагаю, что это транзитивно "в управляемой куче", но мне нужно подтверждение.
Причина Я спрашиваю, возможно, я вижу некоторые доказательства того, что мой foo
поврежден, когда я позже получу к нему доступ; MCVE, возможно, последует в следующем вопросе, в зависимости от результата этого!