2009-01-09 38 views
23

編寫代碼來填充從對象文本框,如後:如何在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; 

回答

64

VS2012之前:

  • 複製和粘貼代碼
  • 原塊要切換的地方再次選擇它
  • 按下Ctrl-H以取代「替換」框
  • 在 「查找內容」 提出:{[a-zA-Z\.]*} = {[a-zA-Z\.]*};
  • 在 「替換爲」 地說:\2 = \1;
  • 查找範圍: 「選擇」
  • 使用: 「正則表達式」
  • 命中全部替換

使用.NET正則表達式的VS2012(推測是稍後):

  • Co吡啶和粘貼代碼的原始塊
  • 在要切換
  • 按Ctrl-H拿到的地方再次選擇它的「替換爲」框中起來
  • 在「查找內容」提出:([a-zA-Z\.]*) = ([a-zA-Z\.]*);
  • 在「替換爲」地說:${2} = ${1};
  • .*(正則表達式)圖標被選中(替換文本框下沿三之一)
  • 命中全部替換
確保
4

沒有我所知道的。當然,如果您使用可用的許多綁定方法之一,那麼您不必 - 綁定將在兩個方向上進行更新(包括通過通知進行更改)。

因此,對於的WinForms:

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

0

的選項,讓他們在那裏與ReSharper的第一個地方,方法是定義類似於現場模板:

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

這將讓你鍵入一次他們會複製它爲你然後您可以將保存的版本剪切並粘貼到其他方法。

1

我有同樣的需要,但我有比約翰提供的解決方案a-zA-Z\.接受更多的字符,所以我稍微修改了規則的例外是這樣的:

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

替換爲:\2 = \1

這將逆轉任何角落找尋在一條線上找到的第一等號

相關問題