在Visual Studio中创建属性的快捷方式是什么?

299

我看到有些人在C#中非常快速地创建属性,但是他们是如何做到的?

在Visual Studio中有哪些快捷键(当前使用Visual Studio 2010)可用于创建属性?

我正在使用C#。

例如,

public string myString {get;set;}
17个回答

626
你可以输入 "prop" 然后按两次 tab 键。这将生成以下内容。
public TYPE Type { get; set; }

然后您更改 "TYPE" 和 "Type":

public string myString {get; set;}

你还可以输入"propfull"并按两次Tab键获得完整的属性。这将生成字段和完整的属性。

private int myVar;

public int MyProperty
{
    get { return myVar;}
    set { myVar = value;}
}

7
你忘了给它命名为“代码片段” :) - PVitt
15
同时,propg将创建:public int MyProperty { get; private set; }。(注:该句是一段代码,在翻译时应尽量保留原有的格式和细节。该代码中定义了一个名为“MyProperty”的公共整数属性,可通过get方法获取其值,但只能使用私有set方法进行更改。) - Amc_rtty
4
您还可以编辑代码片段,位于您的Visual Studio安装下的文件夹VC#\Snippets\1033\Visual C#"中。例如,我已经编辑了我的propfull.snippet文件,将其后备字段从private更改为protected。请注意,修改后的内容应保持原意,且语言通俗易懂。 - Paul Smith
11
如果您只是输入字母“P”并按两次“TAB”键,那么它也会创建一个整数属性(int property)。 - Adnan Bhatti
2
你可以继续按Tab键来选择和覆盖类型/名称。并不是每个人都意识到这一点 :-) - Marty
显示剩余4条评论

88

除了Amra's answer,您还可以通过键入

Ctrl + K, Ctrl + X

找到其他片段。在我的Visual Studio中,这被映射为Edit.InsertSnippet,并显示可用片段的完整列表。

还要记住,您可以使用Snippets Manager配置自己的片段,该管理器位于Tools菜单下的Code Snippets Manager...中。 基本上,您需要创建一个*.snippet文件,并使用Code Snippets Manager中的导入按钮将其添加到Visual Studio中。 有关完整教程,请参阅文档; Walkthrough: Create a code snippet


在Visual Studio Code中,代码段与Visual Studio处理方式略有不同。您可以通过键入Ctrl + Shift + P并搜索snippet来访问所有的代码段。应该会出现两个选项,Insert SnippetPreferences: Configure User Snippets
前者从代码段列表中插入一个代码段(使用您可以在状态栏中看到的Language Mode),而后者可以为任何Language Mode创建自己的代码段。
如果您知道代码段的短名称,只需输入该名称,然后使用Tab扩展代码段即可。对于插入C#属性,您可以使用三个代码段proppropfullpropg,用于不同的目的。

很好,它可能会慢一些,但你可以获得完整的快捷方式列表 +1。 - Amra
1
我爱你!我已经寻找这个东西有一段时间了。 - SageMage

26

将光标放在您的字段private int _i;内,然后使用编辑菜单或右键单击 - 重构 - 封装字段... (CtrlR, CtrlE)以创建标准属性访问器。


1
并非每个人都使用相同的键盘布局(更不用说 ReSharper 等工具了)。在菜单中添加可以找到相同功能的位置可能是一个好主意。 - sliderhouserules

14

输入"propfull"。它更好用,会生成属性和私有变量。

输入"propfull",然后按下TAB键两次。


1
为什么完整属性比自动属性更好?为什么要在代码中添加额外的字段呢? - Kyle Delaney
1
如果你需要在setter或getter中执行某些操作。 - joe

13

按照Amra的建议,输入"prop" + Tab + Tab后,您可以立即键入属性类型(将替换默认的int),然后键入另一个制表符并键入属性名称(将替换默认的MyProperty)。最后按Enter键完成。


8

从以下内容开始:

private int myVar;

当您选择“myVar”并右键单击,然后选择“重构”,再选择“封装字段”时,系统会自动创建以下内容:

{
    get { return myVar; }
    set { myVar = value; }
}

或者您可以通过按下 Ctrl + R + E 来快速完成。


使用哪个版本的Visual Studio?它似乎不在Visual Studio 2008中。 - Peter Mortensen
Visual Studio 2010提供了各种代码重构选项。您需要使用更新的版本。 - Emrah Esmeroğlu

7

我认为使用 Alt+R+F 快捷键可以在变量声明时创建属性。


2
+1 这正是我在寻找的,因为它可以为现有变量创建属性,谢谢! - AgentKnopf
1
嗯...它正在为我压缩文件。这在VS2012上对我来说并没有按预期工作。 - Ammar

5
我很喜欢这个IDE的一点是,我可以写几个变量,例如:
    private int id;
    private string name;
    private string version;
    private string description;
    private string status;
    private string symbol;

注意,变量名以小写字母开头,然后选择整个代码块,按下Ctrl+RCtrl+E,应用。属性使用大写字母生成:

    public int Id
    {
        get
        {
            return id;
        }

        set
        {
            id = value;
        }
    }

etc.


这并没有真正回答问题,是吗? - mrun
这是我正在寻找的一种快捷方式,但你是对的。我的答案侧重于如何准备变量,使其具有属性,并在应用快捷方式后无需编辑即可使用。 - Jaro64
这是我一直在寻找的一种快捷方式,最终来到了这个页面。原始问题是如何在C#中快速创建属性。在许多使用情况下,这肯定是您拥有私有字段并希望避免将其变为公共字段的地方(这是我的情况)。如果我已经编写了私有字段,并且想要尽快完整地公开属性,那么我认为这在这个大子集的情况下完美地回答了问题。简单明了。 - Will Croxford
这很棒,但我的代码会给我生成 'get =>' 的简写,我不喜欢。是否有设置可以更改生成的内容? - Paul McCarthy

3

当你在 Visual Studio 中编写代码时,

public ServiceTypesEnum Type { get; set; }
public string TypeString { get { return this.Type.ToString();}}

ReSharper会建议将其转换为:

public string TypeString => Type.ToString();

但我认为第一个比ReSharper建议的更易读。 - Mahdi Alkhatib
4
这个回答如何回应这个问题? - Peter Mortensen

3

输入P + Tab + Tab

更改数据类型,按下TAB键,更改属性名称,然后按End + Enter


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接