由于我没有发现ReSharper是否能够为属性生成私有只读备份字段,有没有办法如何定义可以执行此操作的自定义脚本?
想象一下你有一个属性
public Type PropertyName { get; set; }
然后你在这一行上设置一个光标,按Alt + Enter,会有一个菜单项将属性转换为
private readonly Type propertyName;
public Type PropertyName { get { return propertyName; } }
我发现自己处于实际使用过多次的情况。
答案 0 :(得分:8)
使用R#,您可以创建Live Template。在这种情况下:
将模板创建为:
private readonly $Type$ $propertyName$;
public $Type$ $PropertyName$ { get { return $propertyName$; } }
在$SomeText$
中包含文本会将该文本指定为R#的变量来进行操作。
在变量名称面板中:
Name Value Editable Occurence
Type Choose Macro* #2
PropertyName Choose Macro* checkbox is checked
propertyName (see below) not editable
Macro > - Value of annother variable with the first character in lower case
- Select "PropertyName" as the other variable
*Choose Macro is displayed when no macro is selected; this is the default setting
保存,您可以通过键入使用的快捷方式立即在Visual Studio中使用该模板,即“propReadOnly”
答案 1 :(得分:2)
您可以使用ReSharper
进行相反的工作。
创建私人只读后备字段:
private readonly Type propertyName;
然后按alt + insert
生成该属性。
修改强>
另一个选择是首先创建一个这样的属性:
public MyProperty PropertyName { get { return propertyField; } }
然后将光标放在fieldName上按alt + enter
以创建字段。然后,您将跳转到该字段,再次按alt + enter
Resharper
将使其成为构造函数参数。最后但并非最不重要的是,您现在可以选择再次按alt + enter
以使该字段只读。