246

通过“生成”,我的意思是自动生成特定选定(一组)变量所需的代码。

但欢迎对良好实践进行任何更明确的解释或评论。

4

16 回答 16

324

而不是使用Ctrl+ KX您也可以只键入prop然后按Tab两次。

于 2008-08-06T02:43:21.477 回答
53

Visual Studio 还具有从私有变量生成属性的功能。

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

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

于 2008-08-06T02:52:02.910 回答
41

我使用 Visual Studio 2013 Professional。

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

    在此处输入图像描述

  • 按组合键Ctrl+ RCtrl+E或单击鼠标右键。选择上下文菜单RefactorEncapsulate Field...,然后按OK

    在此处输入图像描述

  • 预览参考更改 - 封装字段对话框中,按下按钮Apply

    在此处输入图像描述

  • 这是结果:

    在此处输入图像描述



您还可以放置光标以选择属性。使用菜单编辑重构封装字段...

  • 其他信息:

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

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

    变成

    public int ProductID { get; set; }
    
于 2015-04-28T10:41:55.600 回答
29

通过生成,您的意思是自动生成吗?如果这不是你的意思:

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 也总是使用这种速记方法。

于 2008-08-06T02:31:37.990 回答
29

您也可以使用“propfull”并点击TAB两次。

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

于 2012-07-17T10:59:35.287 回答
13

在 Visual Studio 2019 中,选择您的属性,如下所示:

在此处输入图像描述

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

将出现一个对话框,显示您的代码将发生的更改的预览。如果一切看起来都不错(大多数情况下会这样),请按OK

于 2019-12-25T23:38:43.047 回答
6

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

右键单击您的代码,单击Insert Snippet ( Ctrl+ K, X),然后从列表中选择“prop”。

于 2008-08-06T02:35:37.547 回答
4

如果您使用的是 ReSharper,请进入 ReSharper 菜单 →代码生成...

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

于 2009-09-28T17:56:15.003 回答
3

我创建了自己的片段,添加了{get; set;}. 我做到了只是因为我发现propTab很笨重。

<?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,然后输入getTab,它会添加 get set。这没什么神奇的,但由于我倾向于先键入访问修饰符,所以我不妨完成名称和类型。

于 2015-03-25T20:07:19.893 回答
2

使用propfull关键字。

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

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

private data_type var_name;

public data_type var_name1{ get;set;}

视频演示了片段“propfull”(除其他外)的使用,时间为 4 分 11 秒。

于 2014-09-25T03:16:41.553 回答
2

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

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

于 2017-01-06T22:04:45.530 回答
1

除了“prop”片段和自动属性之外,还有一个重构选项可让您选择现有字段并通过属性公开它(右键单击字段→重构封装字段...)。

此外,如果您不喜欢“prop”实现,您可以创建自己的片段。此外,像ReSharper这样的第三方重构工具将为您提供更多功能,并使创建更高级的片段变得更加容易。如果您负担得起,我会推荐 ReSharper。

于 2009-01-12T15:22:47.900 回答
0

我不再在我的机器上安装 Visual Studio(而且我使用的是 Linux),但我确实记得有一个向导隐藏在某个菜单中的某个位置,可以访问类生成器。

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

我知道这很模糊,但是检查一下,您可能会找到它。

于 2008-08-06T02:24:29.130 回答
0

在此处输入图像描述

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

于 2017-08-14T12:04:34.523 回答
0

首先获取 Extension 只需按 ( Ctrl+ Shift+ X) 并安装 getter setter ....

在此之后,只需选择您的变量并右键单击。转到命令面板...

然后输入 getter ... 它会建议生成 get 和 set 方法。点击这个...

于 2018-12-17T08:33:13.000 回答
-6

您只需在 Android Studio 中按Alt+即可。Ins

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

于 2017-11-28T04:13:33.437 回答