【问题标题】:Easy way to generate Getters and Setters in Visual Studio在 Visual Studio 中生成 Getter 和 Setter 的简单方法
【发布时间】:2014-09-03 15:33:52
【问题描述】:

有没有办法在 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;
}

有没有办法做到这一点?

【问题讨论】:

  • 不太确定是否有办法做到这一点,但为什么你需要这样的东西?为什么不是属性?后端的属性将具有与您相似的方法。
  • 看起来您来自 Java 背景,C# 的 naming standards 与 Java 不同。如果您计划与其他 C# 开发人员合作,您应该尝试学习新标准。
  • Visual Studio 为您提供的是 C# 中 getter/setter 的标准格式。
  • 请考虑public string Denomination {get;set;} 是否足以满足您的需求。
  • 嗯,这不是 C# 的标准(是的,我来自 Java xD)。所以我可以使用我首先得到的东西而不是“Java 方式”?

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


【解决方案1】:

您可以使用prop 代码 sn-p 来创建自动属性。

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

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

【讨论】:

    【解决方案2】:

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

    您需要做的是创建一个 Code Snippet 来创建这两个方法,并将 sn-p 添加到您的 %USERPROFILE%\Documents\Visual Studio 2013\Code Snippets\Visual C#\My Code Snippets 文件夹中。完成此操作后,您将能够输入 sn-p 名称并点击tab,它将填写您要查找的文本。

    【讨论】:

      【解决方案3】:

      这只是一个意见,但我不是属性的忠实粉丝,因为我开始使用 java 开发,然后切换到 C#。

      我知道喜欢它们的开发人员,也知道一些讨厌它们的开发人员,但如果您的团队例如想要使用 getter 和 setter 而不是属性,那么您可能会对这个 sn-p 感兴趣。

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

      <?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 的 Code sn-p 管理器,你可以键入 getset,然后在 Visual 中按 tab studio,它会生成这个:

      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;
      }
      

      【讨论】:

        猜你喜欢
        • 2010-09-05
        • 1970-01-01
        • 2017-11-05
        • 2016-08-04
        • 2010-09-13
        • 1970-01-01
        • 1970-01-01
        • 2014-07-16
        • 1970-01-01
        相关资源
        最近更新 更多