Как избежать или обнаружить неявный вывод делегата в C #?

Я пишу игру на языке C #и обнаружил ряд случаев, когда функция принимает делегат, а я непреднамеренно передал имя функции вместо создания и кэширования делегата для использования в качестве параметра. Это приводит к тому, что для каждого вызова этих функций создается объект делегата, который затем сразу же становится мусором, когда функция возвращается.

Я хотел бы найти все места, где я допустил эту ошибку, и я бы предпочел не читать каждую строку каждого файла в поисках их (кода на это уходят годы ). Я видел, что в VB есть 'option strict', который отключает неявное построение объектов, и я думаю, что это сработало бы для меня, если бы C #имел эту функцию, но я не думаю, что это так. Я также рассмотрел варианты предупреждений компилятора, и ни один из них, похоже, не помогает и здесь.

Есть ли достаточно удобный способ идентифицировать эти объекты, созданные неявным выводом делегата, чтобы я мог узнать, где мне нужно создать/кэшировать обратные вызовы, чтобы избежать мусора?

6
задан Eric Cosky 25 April 2012 в 18:18
поделиться