说我在课堂上有私人领域。如果我告诉Visual Studio使用属性封装字段,它会为get和set访问器输出lambda表达式。
namespace MyNamespace
{
public class MyClass
{
private bool isActive;
//Auto-Generated Property
public bool IsActive
{
get => isActive;
set => isActive = value;
}
}
}
但我宁愿每个访问者都有一对括号。
namespace MyNamespace
{
public class MyClass
{
private bool isActive;
//Auto-Generated Property
public bool IsActive
{
get
{
return isActive;
}
set
{
isActive = value;
}
}
}
}
如何更改行为?我知道这里的片段存在: " C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ VC#\ Snippets \ 1033 \ Refactoring" 但我无法弄清楚如何改变它们以获得我想要的行为。
答案 0 :(得分:0)
这就是我想要的 - 支持快捷方式。有趣的是,如果您已经拥有一个私有字段,Visual Studio会生成一个公共属性,其具有与您从头开始时的不同(较新)语法。
Shortcut to create properties in Visual Studio?
我使用此代码段创建自己的代码片段,在其中我创建了一个带有支持字段的公共属性。但是使用公共属性我添加了一个RaisedPropertyChanged()方法调用,因为我正在使用WPF进行MVVM,我想使用这个快捷方式在ObservableObjects上轻松创建属性。我的问题并不清楚我的最终目标是什么。
<?xml version="1.0" encoding="utf-8" ?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>obsprop</Title>
<Shortcut>obsprop</Shortcut>
<Description>Code snippet for property and backing field for observable object</Description>
<Author>Microsoft Corporation</Author>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Declarations>
<Literal>
<ID>type</ID>
<ToolTip>Property type</ToolTip>
<Default>string</Default>
</Literal>
<Literal>
<ID>property</ID>
<ToolTip>Property name</ToolTip>
<Default>MyProperty</Default>
</Literal>
<Literal>
<ID>field</ID>
<ToolTip>The variable backing this property</ToolTip>
<Default>myVar</Default>
</Literal>
</Declarations>
<Code Language="csharp"><![CDATA[private $type$ $field$;
public $type$ $property$
{
get { return $field$;}
set
{
$field$ = value;
RaisePropertyChanged();
}
}
$end$]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>