VS中的属性快捷方式

时间:2009-06-22 16:12:59

标签: visual-studio-2008 resharper

我在VS 2008中输入prop然后选项卡(或任何VS)。我正在使用Resharper。

我选项卡,再给它一个类型,选项卡,并且在我开始输入之前必须删除属性名称的文本。好的,很好。

现在问题就在这里,我留下了这个问题:

public string Maxlength { get; set; }

是否有一种快速的方式来实现这一点,以便我可以开始填写我的get和set?

public string Maxlength
{
    get{;}
    set{;}
}

由于某种原因,我还不能快速删除道具。只需要使用快捷方式或与Resharper一样的东西。

3 个答案:

答案 0 :(得分:1)

在Visual Studio 2008中,prop代码段已更改为输出自动实现的属性。要使用扩展getset块的较旧代码段,您需要创建一个新代码段。

这是我创建的一个比Visual Studio为您提供的默认更灵活的一个:

<?xml version="1.0" encoding="utf-8" ?>
<CodeSnippets  xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
    <CodeSnippet Format="1.0.0">
        <Header>
            <Title>propfull</Title>
            <Shortcut>propfull</Shortcut>
            <Description>Code snippet for creating a property</Description>
            <Author>Andrew Hare</Author>
            <SnippetTypes>
                <SnippetType>Expansion</SnippetType>
            </SnippetTypes>
        </Header>
        <Snippet>
            <Declarations>
                <Literal>
                    <ID>type</ID>
                    <Default>String</Default>
                    <ToolTip>property type</ToolTip>
                </Literal>
                <Literal>
                    <ID>fname</ID>
                    <Default>name</Default>
                    <ToolTip>field name</ToolTip>
                </Literal>
                <Literal>
                    <ID>pname</ID>
                    <Default>Name</Default>
                    <ToolTip>property name</ToolTip>
                </Literal>
                <Literal>
                    <ID>access</ID>
                    <Default>public</Default>
                    <ToolTip>property visibility</ToolTip>
                </Literal>
            </Declarations>
            <Code Language="csharp">
                    <![CDATA[$type$ $fname$;

            $access$ $type$ $pname$
            {
                get { return this.$fname$; }
                set { this.$fname$ = value; }
            }$end$]]>
            </Code>
        </Snippet>
    </CodeSnippet>
</CodeSnippets>

答案 1 :(得分:1)

如果要“填写”自动转换,请转到变量名并按 Alt + Ins 并选择“带有支持字段的属性” - 它将导致:

private string m_Maxlength;
public string Maxlength
{
  get { return m_Maxlength; }
  set { m_Maxlength = value; }
}

或者您可以更改实时模板(ReShaper - &gt;实时模板 - &gt;预定义模板 - &gt; C# - &gt; prop“ - 然后编辑:

public $TYPE$ $NAME$ { get {$END$;} set{;} }

答案 2 :(得分:0)

ReSharper可能正在接管该属性片段。您可能想要查看ReSharper |实时模板...菜单。