Рефакторинг кода - это легко
                        Уменьшите сложность вашего кода, улучшите его читаемость и сделайте его расширяемым, не изменяя его внешнего поведения. Рефакторинг старого кода, кода, который вы унаследовали, или вашего начального варианта проекта.
                  	 
                    Доступ к командам рефакторинга
                    Команды рефакторинга доступны в меню, с помощью клавиатуры и мыши, и содержание меню зависит от контекста. Рефакторинг доступен как в окнах инструментов Visual Assist, так и в текстовом редакторе для символов, выделенных частей и пробельных символов. 
                    Откройте контекстное меню Quick Action and Refactoring для текущего символа с помощью сочетания клавиш по умолчанию Shift+Alt+Q.
                    
                    Получить полный список команд рефакторинга можно в контекстном меню текстового редактора.
                    
                    Наведите курсор на символ и Visual Assist отобразит значок если рефакторинг доступен. Нажмите на значок, чтобы открыть контекстно-зависимые меню.
                    
                    
                    Изменение сигнатуры
                    Изменение сигнатуры метода из любой ссылки, реализации или объявления.
                    Обновите сигнатуру метода или функции в простом диалоговом окне, и Visual Assist выведет различия между исходной и новой сигнатурами. Переупорядочивайте, переименовывайте, добавляйте и удаляйте параметры с помощью этого мощного рефакторинга, который также обновляет все ссылки на ваш метод. При переименовании параметра ссылки на него в методе также переименовываются.  
                    Измените любую или все следующие части сигнатуры:
                    
                        -  Имя метода
-  Возвращаемый тип
-  Видимость
-  Имена параметров
-  Типы параметров
-  Порядок параметров
-  Количество параметров
-  Квалификаторы
Аналогично рефакторингу переименования, установите область изменения и предварительно просмотрите набор ссылок, которые будут подвергнут рефакторингу.
                    
                    
                    Конвертировать указатель в экземпляр
                    Измените указатели объектов на ссылки на объекты и наоборот.
                    Быстро преобразуйте тип в объявлении, поменяв "." и "->" в ссылках, и отрегулируйте "*" и "&" по мере необходимости. 
                    
                    
                    Инкапсулировать поле - Encapsulate Field
                    Создание аксессоров к member field путем инкапсуляции этого поля.
                    Ограничьте действия над member field с помощью рефакторинга Инкапсулировать поле (Encapsulate Field). Аксессоры создаются и именуются автоматически, и ваше исходное поле остается нетронутым в том случае, если вам нужно скомпилировать устаревший код при обновлении ссылок. Если вы инкапсулируете новое поле, немедленно сделайте его private, чтобы ограничить будущий доступ.  
                    
                    В C/C++, аксессоры создаются рядом с объявлением в заголовочном файле и могут оставаться в заголовочном файле для inline- выполнения.
                    
                    Если вы предпочитаете реализации в исходном файле, выполните Инкапсуляцию поля вместе с другим рефакторингом, чтобы переместить реализации в соответствующий исходный файл.
                    
                    
                    
                    Переместите сегмент кода в отдельный метод и замените его вызовом извлеченного метода.
                    Облегчите чтение длинных методов и совместное использование общих блоков кода с помощью рефакторинга Extract Method. Извлеките несколько строк или сегмент одной. Возвращаемое значение и параметры извлеченного метода будут определены и предложены вам.  
                    
                    В C/C++ этот рефакторинг создает встроенный метод в заголовочном файле или извлекает реализацию непосредственно в исходный код.
                    
                    
                    Ввести переменную -Introduce Variable
                    Замените выражение на переменную, объясняющую назначение заменяемого кода.
                    Introduce Variable определяет временную переменную в самой внутренней области выделения, инициализирует временную переменную замененным кодом и заменяет одно или несколько вхождений выражения временной переменной.  
                    
                    
                    
                    В C/C++: легко перемещает реализацию метода из исходного кода в заголовочный файл или объявление класса.
                    Этот рефакторинг помещает реализации в заголовочные файлы для встроенного выполнения. Рефакторинг также перемещает реализацию метода в объявление класса рядом с другими методами того же класса. Определите формат реализаций с помощью VA Snippet.  
                    
                    
                    Перенести реализацию в файл исходного кода
                    В C/C++: переместите реализацию метода из заголовочного файла в файл исходного кода.
                    Этот рефакторинг часто инициируется после других рефакторингов, которые помещают реализации в заголовочные файлы для  inline выполнения, например, Encapsulate Field. Рефакторинг создает объявление в заголовке и перемещает реализацию рядом с другими методами того же класса. 
                    
                    
                    Перемещение реализаций методов в файл исходного кода
                    В C/C++: переместите все реализации из заголовочного файла в файл исходного кода за одну операцию.
                    В дополнение к команде рефакторинга, которая перемещает одну реализацию, эта множественная версия перемещает все методы из заголовочного файла в класс. Вызовите команду из имени класса, а не из одного из его членов. Появится диалоговое окно, в котором можно выбрать реализации для перемещения.  
                    
                    
                    Переместить выделение в новый файл
                    Переместите код в новый файл заголовка или исходного кода и автоматически добавьте новый файл в активный проект.
                    Рефакторинг создает новый файл в том же каталоге, что и активный документ. Определите формат нового файла с помощью VA Snippet. В C/C++ Visual Assist может заменить выделение в активном документе на  #include, если выделение перемещено в заголовочный файл.  
                    
                    
                    Переименование -Rename
                    Быстро и точно переименуйте символы в активном проекте и во всем решении.
                    Этот часто используемый рефакторинг переименовывает определение и объявление символа, все ссылки на него и, возможно, вхождения в комментарии и строки. Предварительный просмотр всех целей, подлежащих переименованию, всегда отображается, поэтому вы уверены, что переименование делает то, что вы ожидаете. Отмените выбор всех ссылок, которые вы хотите оставить нетронутыми, и отмените всю операцию, если вы допустите ошибку.  
                    Переименование доступно для:
                    
                        -  Классов
-  Enums
-  Полей
-  Макросов
-  Методов
-  Параметров метода
-  Переменных
Выберите пункт Rename в любом меню рефакторинга, укажите новое имя и задайте параметры. Предварительный просмотр изменений различает вхождения, доступные только для чтения и для записи.
                    
                    
                    Переименование файлов - Rename Files
                    Переименуйте активный документ, не нарушая сборку.
                    Переименуйте активный документ и соответствующие ему файлы легко, не прерывая ваш поток работы и не нарушая сборку. Visual Assist автоматически обновляет файлы, проекты и решения, а затем распространяет переименование через системы управления версиями, интегрированные с Microsoft Visual Studio.  
                    В C/C++ заголовочные файлы и файлы исходного кода переименовываются попарно, и переименование заголовочного файла автоматически обновляет все директивы #include которые включают этот заголовочный файл. В C# файлы дизайна и кода переименовываются одновременно.
                    
                    
                    Упрощение объявления экземпляра - Simplify Instance Declaration
                    Сделайте объявления объектов более понятными.
                    Исключите внешнюю настройку объекта на новый экземпляр его типа. 
                    
                    После вызова рефакторинга объект создается и инициализируется в более простом, но эквивалентном объявлении.
                    