如何在Visual Studio中生成getter和setter ?

这里的“生成”指的是为特定选定的(一组)变量自动生成所需的代码。

但是,任何关于良好实践的更明确的解释或评论都是受欢迎的。

538116 次浏览

我的机器上不再安装Visual Studio(我使用的是Linux),但我确实记得在其中一个菜单中隐藏了一个向导,可以访问类构建器。

使用此向导,您可以定义所有类的详细信息,包括方法和属性。如果我没记错的话,有一个选项可以让Visual Studio自动为你创建setter和getter。

我知道这很模糊,但仔细看看,你可能会发现。

你说的生成是指自动生成吗?如果你不是这个意思

Visual Studio 2008有一个最简单的实现:

public PropertyType PropertyName { get; set; }

在后台,这将创建一个隐含的实例变量,您的属性将存储和检索到该变量。

然而,如果你想在你的属性中放入更多的逻辑,你必须有一个实例变量:

private PropertyType _property;


public PropertyType PropertyName
{
get
{
//logic here
return _property;
}
set
{
//logic here
_property = value;
}
}

以前版本的Visual Studio也总是使用这种手工方法。

如果使用Visual Studio 2005及更高版本,可以使用insert snippet命令快速创建setter/getter。

右键单击代码,单击插入片段 (Ctrl+KX),然后从列表中选择“prop”。

除了使用Ctrl + KX,你也可以只输入prop,然后按选项卡两次。

Visual Studio还有一个特性,可以从私有变量生成属性。

如果你右键单击一个变量,在弹出的上下文菜单中,点击“重构”项,然后选择封装字段…。这将为变量创建一个getter/setter属性。

我不太喜欢这种技术,因为如果你必须创建很多getter /setter,它使用起来有点尴尬,它把属性直接放在私有字段的下面,这让我很恼火,因为我通常把所有的私有字段分组在一起,这个Visual Studio功能破坏了我的类的格式。

除了“prop”片段和auto-properties,还有一个refactor选项可以让你选择一个现有的字段,并通过属性(右键点击字段→< em > < / em >重构→< em >封装字段…< / em >)公开它。

此外,如果您不喜欢“道具”实现,您可以创建自己的片段。此外,像ReSharper这样的第三方重构工具会给你更多的特性,让你更容易创建更高级的代码片段。如果你负担得起,我推荐ReSharper。

如果你正在使用ReSharper,进入ReSharper菜单→代码产生……

(或者在周围的类中点击Alt + Ins),你会得到所有你能想到的生成getter和/或setter的选项:-)

你也可以使用"propfull"并点击选项卡两次。

将生成带有get和set的变量和属性。

使用propfull关键字。

它将生成一个属性和一个变量。

在编辑器中键入关键字propfull,后跟两个__abc1。它将生成如下代码:

private data_type var_name;


public data_type var_name1{ get;set;}

演示片段propfull使用的视频(除其他外),在4分11秒。

我创建了自己的代码片段,其中只有添加了{get; set;}。我这样做只是因为我发现prop选项卡变得笨拙。

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets
xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>get set</Title>
<Shortcut>get</Shortcut>
</Header>
<Snippet>
<Code Language="CSharp">
<![CDATA[{get; set;}]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>

有了这个,你手动输入PropType和PropName,然后输入get选项卡,它会添加get集。这没什么神奇的,但由于我倾向于先输入我的访问修饰符,我不妨完成名称和类型。

我使用Visual Studio 2013 Professional。

  • 将光标放在实例变量所在行。

    Enter image description here

  • 按组合键Ctrl + RCtrl + E,或单击鼠标右键。选择上下文菜单重构封装领域……,然后按好吧

    Enter image description here

  • 预览引用更改-封装字段对话框中,按下按钮应用

    Enter image description here

  • result:

    Enter image description here



你还放置光标以选择属性。使用菜单编辑重构封装领域……

  • < p > 其他信息:

    从c# 3.0(2007年11月19日)开始,我们可以使用自动实现的属性(这仅仅是语法糖)。

    private int productID;
    
    
    public int ProductID
    {
    get { return productID; }
    set { productID = value; }
    }
    

    就变成了

    public int ProductID { get; set; }
    

在Visual Studio Community Edition 2015中,你可以选择所有你想要的字段,然后按Ctrl + 自动生成属性。

您必须选择是否要使用属性而不是字段。

Enter image description here

作为Visual Studio工具的代表,我们可以使用名为c#属性生成器。的在线工具轻松生成c#属性

你只需要在Android Studio中简单地按Alt + Ins

声明变量后,您将在生成的代码中获得getter和setter。

首先获取扩展,只需按(Ctrl + 转变 + X)并安装getter setter ....

在此之后,只需选择你的变量和右键单击。转到命令面板…

类型getter…它将建议generate get和set方法。点击这个…

在visual studio 2019中,像这样选择您的属性:

enter image description here

然后按Ctrl+r 然后按Ctrl+e

将出现一个对话框,向您显示将要发生在代码上的更改的预览。如果一切看起来都很好(大多数情况下),按OK

我个人使用CTRL+,然后选择- “封装Fildes"。 这是这个选项的缩写- (如何在Visual Studio中生成getter和setter ?).