Область решается методом (здесь LoadIt) ...
Если методы нагрузки он хранит параметр MyClass в глобальной переменной, не затем, пока глобальная переменная выходит из области видимости, то Объект останется в памяти ... т.е. Это не будет сбор мусора, поскольку глобальная переменная все еще ссылается на него ...
Объекты, как правило, хранятся в куче и могут быть указаны многими переменными, находящимися в стеке ... Здесь вы не хотите хранить ссылку в стек вашего метода ... Но он ссылается в стек метода LoadIt по его параметру ... Следовательно, объект не будет собирать мусор до тех пор, пока параметр Load the method не выходит за пределы области ... В то же время метод LoadIt может попытаться ссылаться на него снова в глобальной переменной или передать его как параметр другому методу ... В целом, только когда все ссылки для объекта в стеке (или в других объектах) выходят за пределы области видимости, объект - сбор мусора ...
Возвращение ссылки на этот объект, чисто де- в зависимости от того, что делает метод «Загрузить» с этим объектом ... Если метод ничего не делает, кроме ссылки на него с переменной параметра, то вы не можете его вернуть ... Но если метод копирует ссылку на другую переменную, доступную общедоступную , то вы можете использовать эту переменную и вернуть ссылку.
Это не анонимный объект! 'new {propOne =" hello "};' is. –
Да, слово анонимное неправильно ... Я просто использовал его, потому что я не знаю лучшего слова ... –
Нет ни слова, потому что концепция на самом деле не существует, так как вы описываете ее в CLR. Либо объекты достижимы, то есть ссылка укоренена - или это не так. Если у объекта нет доступных ссылок, он называется «недоступным» и, следовательно, является кандидатом на сбор. – codekaizen