В вашем сценарии кажется, что фактическое создание объекта выполняется внутри вашего GetList()
метода. Таким образом, ваш первый образец будет правильным.
При создании ваш List<MyCustomClass>
сохраняется в куче, а ваш listCustClass
является просто ссылкой на этот новый объект. Когда для listCustClass установлено значение GetList()
, указатель ссылки listCustClass
отбрасывается и заменяется указателем ссылки на то, что GetList()
возвращает (может быть нулевым). Когда это происходит, ваш исходный List<MyCustomClass>
все еще находится в куче, но никакие объекты не указывают на него, поэтому он просто тратит ресурсы, пока не соберется сборщик мусора и не очистит его.
Чтобы подвести итог, каждый раз, когда вы создаете новый объект, а затем отказываетесь от него, как во втором примере, вы, по сути, тратите память, заполняя кучу бесполезной информацией.