Resharper - 有没有办法让它自动更新参考?

时间:2014-07-30 01:14:48

标签: vb.net visual-studio-2012 refactoring resharper

我看到有人使用resharper,我注意到每当他们更改了一个属性名称时,会立即反映在所有引用中。

所以我下载了一个resharper的试用版,它似乎仍然是一个手动'替换所有'功能。我输入时不会更新。

Resharper看起来很酷,但我希望看到这个特殊功能!与谷歌处于死胡同。

1 个答案:

答案 0 :(得分:1)

你看到的东西可能是Live Template。这些可以包含占位符,同一个占位符可以在同一个模板中出现多次。插入模板时,光标将转到第一个占位符,您可以在其中键入新值,同一占位符的所有其他实例将反映您键入的相同编辑。

例如,ReSharper附带了一个" dependencyProperty"实时模板,定义为:

public static readonly System.Windows.DependencyProperty $propertyName$Property =
  System.Windows.DependencyProperty.Register("$propertyName$", typeof ($propertyType$), typeof ($containingType$), new PropertyMetadata(default($propertyType$)));

public $propertyType$ $propertyName$
{
  get { return ($propertyType$) GetValue($propertyName$Property); }
  set { SetValue($propertyName$Property, value); }
}

插入此模板时,光标将转到第一个占位符(上面显示为$propertyName$),您可以为该占位符键入值。 $propertyName$占位符的所有实例都会使用您键入的相同编辑进行更新。

然后您可以点击Tab,它会将您移动到下一个占位符($propertyType$),您可以同样更新它。如果再次使用Tab键(要保留最后一个占位符),则退出占位符模式,模板将变为可以正常编辑的普通旧文本。


重命名本地变量时,您还可以获得按类型实时更新的行为。但如果你看到这个属性,几乎可以肯定是一个实时模板。 (属性重命名可能会影响多个文件,这可能需要一些时间,因此ReSharper会等到您在完成工作之前确认重命名。它还会建议相关的重命名,例如对属性的后备字段进行相应的重命名,实时更新也不实用。)