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

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


当前回答

我使用Visual Studio 2013 Professional。

将光标放在实例变量的行上。 按组合键“Ctrl + R”、“Ctrl + E”或单击鼠标右键。选择上下文菜单重构→封装字段…,然后按“OK”。 在预览引用更改-封装字段对话框中,按下“应用”按钮。 这是结果:

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

其他信息: 从c# 3.0(2007年11月19日)开始,我们可以使用自动实现的属性(这只是语法糖)。 和 private int productID; 公共int ProductID { 返回productID;} set {productID = value;} } 就变成了 公共int ProductID{获取;设置;}

其他回答

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

右键单击代码,单击“插入代码段”(Ctrl+K,X),然后从列表中选择“道具”。

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

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还有一个特性,可以从私有变量生成属性。

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

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

我创建了自己的代码片段,只添加了{get;设置;}。我这样做只是因为我发现prop→Tab是笨拙的。

<?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→Tab,它将添加get集。这没什么神奇的,但由于我倾向于先输入我的访问修饰符,我不妨完成名称和类型。

你只需要在Android Studio中按Alt + Ins。

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