在Visual Studio中生成Getter和Setter的简便方法

时间:2014-09-03 15:33:53

标签: c# visual-studio properties getter-setter

有没有办法在Visual Studio中生成getter和setter?  我正在尝试 Alt + R F 我得到了这个:

public String Denomination
{
    get { return denomination; }
    set { denomination = value; }
}

我想要的是这个:

public String getDenomination()
{
    return Denomination;
}

public void setDenomination(String Denomination)
{
    this.Denomination = Denomination;
}

有办法吗?

3 个答案:

答案 0 :(得分:8)

您可以使用prop代码段创建自动属性。

键入prop,然后按Tab。然后,您可以更改属性的类型和名称。

在简单的情况下,如果不需要额外的逻辑,就不需要支持字段。

答案 1 :(得分:3)

我不认为有一种内置的方法可以使用Visual Studio开箱即用,但它们确实提供了添加该功能的方法。

您需要创建一个Code Snippet来创建这两种方法并将代码段添加到%USERPROFILE%\Documents\Visual Studio 2013\Code Snippets\Visual C#\My Code Snippets文件夹中。完成后,您就可以输入代码段名称并点击tab,它会填写您要查找的文字。

答案 2 :(得分:1)

它只是一个意见但是自从我开始使用Java开发然后切换到C#以来,我不是属性的忠实粉丝。

我知道喜欢他们的开发者,我知道有些人讨厌他们,但如果你的团队想要使用getter和setter而不是属性,那么这段代码可能会对你感兴趣。

我更改了生成属性以满足我的需求的那个,但也许它也适合你

<?xml version="1.0" encoding="utf-8" ?>
<CodeSnippets  xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
    <CodeSnippet Format="1.0.0">
        <Header>
            <Title>getset</Title>
            <Shortcut>getset</Shortcut>
            <Description>Code snippet for Getter and Setter</Description>
            <Author>bongo</Author>
            <SnippetTypes>
                <SnippetType>Expansion</SnippetType>
            </SnippetTypes>
        </Header>
        <Snippet>
            <Declarations>
                <Literal>
                    <ID>type</ID>
                    <ToolTip>object type</ToolTip>
                    <Default>int</Default>
                </Literal>
                <Literal>
                    <ID>GSName</ID>
                    <ToolTip>Getter Setter name</ToolTip>
                    <Default>MyMethod</Default>
                </Literal>
                <Literal>
                    <ID>field</ID>
                    <ToolTip>The variable backing this Getter Setter</ToolTip>
                    <Default>myVar</Default>
                </Literal>
            </Declarations>
            <Code Language="csharp"><![CDATA[private $type$ $field$;

    /// <summary>
    /// 
    /// </summary>
    /// <param name="value"></param>
    public void Set$GSName$($type$ value)
    {
        $field$ = value;
    }       

    /// <summary>
    /// 
    /// </summary>
    /// <returns></returns>
    public $type$ Get$GSName$()
    {
        return $field$;
    }
    $end$]]>
            </Code>
        </Snippet>
    </CodeSnippet>
</CodeSnippets>

如果你像Scott Chamerlain所说的那样添加它,或者在工具选项卡中使用Visual Studio的代码段管理器,你可以输入 getset ,然后在Visual Studio中按 tab 它会产生这个:

private int myVar;

/// <summary>
/// 
/// </summary>
/// <param name="value"></param>
public void SetMyMethod(int value)
{
    myVar = value;
}

/// <summary>
/// 
/// </summary>
/// <returns></returns>
public int GetMyMethod()
{
    return myVar;
}