如何在Visual Studio中对等号进行反向代码?

问题描述:

编写代码来填充从对象文本框,如后:如何在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; 

VS2012之前:

  • 复制和粘贴代码
  • 原块要切换的地方再次选择它
  • 按下Ctrl-H以取代“替换”框
  • 在 “查找内容” 提出:{[a-zA-Z\.]*} = {[a-zA-Z\.]*};
  • 在 “替换为” 地说:\2 = \1;
  • 查找范围: “选择”
  • 使用: “正则表达式”
  • 命中全部替换

使用.NET正则表达式的VS2012(推测是稍后):

  • Co吡啶和粘贴代码的原始块
  • 在要切换
  • 按Ctrl-H拿到的地方再次选择它的“替换为”框中起来
  • 在“查找内容”提出:([a-zA-Z\.]*) = ([a-zA-Z\.]*);
  • 在“替换为”地说:${2} = ${1};
  • .*(正则表达式)图标被选中(替换文本框下沿三之一)
  • 命中全部替换
确保

没有我所知道的。当然,如果您使用可用的许多绑定方法之一,那么您不必 - 绑定将在两个方向上进行更新(包括通过通知进行更改)。

因此,对于的WinForms:

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

的选项,让他们在那里与ReSharper的第一个地方,方法是定义类似于现场模板:

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

这将让你键入一次他们会复制它为你然后您可以将保存的版本剪切并粘贴到其他方法。

我有同样的需要,但我有比约翰提供的解决方案a-zA-Z\.接受更多的字符,所以我稍微修改了规则的例外是这样的:

查找内容:{^[^\=]*} = {.*}

替换为:\2 = \1

这将逆转任何角落找寻在一条线上找到的第一等号