Подтвердить что ты не робот

Как изменить код на знак равенства в Visual Studio?

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

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;
4b9b3361

Ответ 1

До VS2012:

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

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

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

Ответ 2

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

Итак, для winforms:

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

и т.д.

Ответ 3

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

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

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

Откроется все arround знак первого уровня, найденный в строке

Ответ 4

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

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

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