Как можно повернуть код вокруг знака равенства в Visual Studio? - PullRequest
26 голосов
/ 10 января 2009

После написания кода для заполнения текстовых полей из объекта, таких как:

txtFirstName.Text = customer.FirstName;
txtLastName.Text = customer.LastName;
txtAddress.Text = customer.Address;
txtCity.Text = customer.City;

есть ли способ в Visual Studio (или даже что-то вроде Resharper) скопировать и вставить этот код в функцию сохранения и повернуть код вокруг знака равенства, чтобы он выглядел следующим образом:

customer.FirstName = txtFirstName.Text;
customer.LastName = txtLastName.Text;
customer.Address = txtAddress.Text;
customer.City = txtCity.Text;

Ответы [ 4 ]

71 голосов
/ 10 января 2009

До VS2012:

  • Скопируйте и вставьте оригинальный блок кода
  • Выберите его снова в том месте, куда вы хотите переключиться
  • Нажмите Ctrl-H, чтобы открыть окно «Заменить»
  • Под "Найти что" поставить: {[a-zA-Z\.]*} = {[a-zA-Z\.]*};
  • Под "Заменить" поставить: \2 = \1;
  • Заглянуть в: "Выбор"
  • Использование: "Регулярные выражения"
  • Хит Заменить все

С VS2012 (и, вероятно, позже), который использует регулярные выражения .NET:

  • Скопируйте и вставьте оригинальный блок кода
  • Выберите его снова в том месте, куда вы хотите переключиться
  • Нажмите Ctrl-H, чтобы открыть окно «Заменить»
  • Под "Найти что" поставить: ([a-zA-Z\.]*) = ([a-zA-Z\.]*);
  • Под "Заменить" поставить: ${2} = ${1};
  • Убедитесь, что выбран значок .* (регулярные выражения) (третий под текстовым полем замены)
  • Нажмите Заменить все
4 голосов
/ 10 января 2009

Ни о чем я не знаю. Конечно, если вы используете один из многих доступных подходов к связыванию, то вам не придется - привязка будет выполнять обновление в обоих направлениях (включая изменение через уведомления).

Так что для winforms:

txtFirstName.DataBindings.Add("Text", customer, "FirstName");

и т.д.

2 голосов
/ 12 марта 2013

У меня была такая же потребность, но мне пришлось принять больше символов, чем a-zA-Z\. в решении, предоставленном Джоном, поэтому я слегка изменил его обычное исключение, например:

Найти что: {^[^\=]*} = {.*}

Заменить на: \2 = \1

Это перевернет что-либо вокруг первого знака равенства , найденного на линии

0 голосов
/ 10 января 2009

Чтобы получить их таким образом, в первую очередь с помощью Resharper, можно определить живой шаблон, подобный:

$uiElement$ = $dto$;
$dto$ = $uiElement$;

Это позволит вам набрать их один раз, дублировать для вас, а затем вы можете вырезать и вставить версию сохранения в другой метод.

...