Поделиться через


Рефакторинг статических локальных функций и быстрые действия

В этой статье описаны две функции повышения производительности, связанные со статическими локальными функциями. Одна из них — рефакторинг, который делает локальную функцию статической, а другая — быстрое действие, создающее код для передачи переменных в статическую локальную функцию.

Превращение локальной функции в статическую

Область применения этого рефакторинга:

  • C#

Что: делает локальную функцию статической и передает переменные, определенные вне функции, в объявление и вызовы функции.

Когда: вы хотите, чтобы локальная функция была статической и для всех переменных, определенных в область функции.

Почему: статические локальные функции повышают удобочитаемость: зная, что конкретный код изолирован, упрощает понимание, перечитание и повторное использование. Статические локальные функции также обеспечивают функции определения области, чтобы предотвратить "замусоривание" класса со статической функцией, которая вызывается только в одном методе.

Практические советы

  1. Поместите курсор на имя локальной функции.

  2. Нажмите клавиши CTRL+ (период), чтобы активировать меню быстрых действий и рефакторингов.

    Make local function static

  3. Выберите Make local function ‘static’ (Сделать локальную функцию статической).

Явная передача переменной в статическую локальную функцию

Это быстрое действие применимо к:

  • C#

Что: передает переменную явно в локальную статическую функцию.

Когда: вы хотите, чтобы локальная функция была статической, но по-прежнему использует переменные, инициализированные за ее пределами.

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

Практические советы

  1. Поместите курсор на переменную в месте ее использования в статической локальной функции.

  2. Нажмите клавиши CTRL+ (период), чтобы активировать меню быстрых действий и рефакторингов.

    Pass variable explicitly in static local function

  3. Выберите Явно передать переменную в локальную статическую функцию.

См. также