我在 WPF 项目中使用 Visual Studio '17 和 Resharper,该项目向用户显示大量信息。因此我有很多如下所示的属性。
private double _foo;
public double Foo
{
get { return _foo; }
set { SetProperty(ref _foo, value); }
}
我正在寻找一种快速自动化的方法来创建它。现在我输入“prop”并得到这个
public double Foo {get; set;}
按“Alt-Enter”->“到带有支持字段的属性”即可获取此内容
private double _foo;
public double Foo
{
get { return _foo; }
set { _foo = value); }
}
然后手动输入 SetProperty(ref 和 ',' 以获得最终结果。我尝试过设置片段和 resharper 模板,但似乎无法弄清楚如何在一次操作中完成它。人们想到了什么具体来说,如果我可以将现有的自动属性更改为视图模型属性,将会有很大帮助。
您可以定义自己的代码片段,以准确满足您的需求。
这是我为自己编写的,用于生成与INotifyPropertyChanged
我也经常使用基类实现:
<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>INPCProperty</Title>
<Author>Peter Duniho</Author>
<Description>Property declaration for NotifyPropertyChangedBase</Description>
<Shortcut>inpcprop</Shortcut>
</Header>
<Snippet>
<Declarations>
<Literal>
<ID>fieldName</ID>
<Default>_fieldName</Default>
<ToolTip>Enter actual field name here</ToolTip>
</Literal>
<Literal>
<ID>fieldType</ID>
<Default>object</Default>
<ToolTip>Enter actual field value type here</ToolTip>
</Literal>
</Declarations>
<Code Language="CSharp">
<![CDATA[private $fieldType$ $fieldName$;
public $fieldType$ FieldName
{
get { return $fieldName$; }
set { _UpdateField(ref $fieldName$, value); }
}]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>
使用 Visual Studio 代码片段管理器将代码片段添加到您的安装中。
(我没有费心为属性名称本身添加一个字段,因为它似乎没有任何意义。但是,当然,如果您愿意,您可以。我看到的唯一优点是与仅选择属性名称和过度打字是指如果它是一个字段,您应该能够在过度打字之前使用 Tab 键直接进入它。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)