Единственная причина утечки памяти в приложении.NET состоит в том, что на объекты все еще ссылаются, хотя их продолжительность жизни закончилась. Следовательно, сборщик "мусора" не может собрать их. И они становятся долговечными объектами.
я нахожу, что очень легко вызвать утечку путем подписки на события, не отказываясь от подписки он, когда жизнь объекта заканчивается.
Из CMake документация
return: возврат из каталога или функции.
return ()
возврат из каталога или функции. Когда встречается эта команда, она вызвал процесс текущей функции или каталог для остановки и управления вернуться к вызывающей функции, или родительский каталог, если таковой имеется. Запись что макрос не является функцией и не обрабатывает возврат как функция делает.