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


259

我见过有人在C#中快速创建属性,但是他们是怎么做到的呢?

在Visual Studio(当前使用Visual Studio 2010)中可以使用哪些快捷方式来创建属性?

我正在使用C#。

例如,

public string myString {get;set;}

Answers:


561

您可以输入“ prop ”,然后按两次tab键。这将产生以下结果。

public TYPE Type { get; set; }

然后更改“ TYPE”和“ Type”:

public string myString {get; set;}

您还可以通过键入“ propfull”来获取完整属性,然后再选择两次。这将生成字段和完整属性。

private int myVar;

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

7
您忘记了将其命名为“代码段” :)
PVitt 2010年

@PVitt:谢谢我不知道这个名字:-)
Amra 2010年

12
另外,propg还将创建:public int MyProperty {get; 私人套装;}
Amc_rtty12 2011年

3
您也可以编辑代码片段,您的Visual Studio 1033下的文件夹VC#\片段\ \的Visual C#\”在安装我编辑我propfull.snippet做后盾领域。protected而不是private,例如,
保罗史密斯

9
如果您只键入P和TAB两次,那么它将同时创建int属性。
Adnan Bhatti

78

除了Amra的答案外,您还可以通过输入以下内容找到其他代码段

Ctrl+ KCtrl+X

它映射到我的Visual Studio中的Edit.InsertSnippet,并向您显示可用的片段的完整列表。

还请记住,您可以使用“代码段管理器”来配置自己的代码段,该功能可在Tools菜单中找到Code Snippets Manager...。基本上,您创建一个文件,*.snippet然后使用代码片段管理器中的“导入”按钮将其添加到Visual Studio。有关完整的教程,您可以转到文档。演练:创建一个代码段


在Visual Studio中,代码片段的处理方式与在Visual Studio中有所不同。您可以通过输入Ctrl+ Shift+ P并输入来访问所有代码段snippet。应该有两个选项,Insert SnippetPreferences: Configure User Snippets

前者从您的代码片段列表中插入一个代码片段(使用状态栏中显示的语言模式),而后者则可以为任何语言模式创建自己的代码片段。

如果您知道短名称,则可以键入该短名称并使用它Tab来扩展代码段。对于将C#属性有三个片段可用proppropfull以及propg为了不同的目的。


不错,它的速度较慢,但​​是您可以获得捷径+1的完整列表。
Amra 2010年

1
我爱你!已经寻找了一段时间了
SageMage 2012年

24

你的领域内将光标private int _i;,然后编辑菜单或人民币-重构-封装字段...( ,CtrlRCtrlE创建标准的属性访问。


1
不是每个人都使用相同的键盘布局(更不用说ReSharper等人了)。最好在菜单中添加可以找到相同功能的位置。
Sliderhouserules 2014年

11

输入“ propfull”。更好地使用它,它将生成属性和私有变量。

输入“ propfull”,然后输入TAB两次。


1
为什么完整属性比自动属性更好?为什么用多余的字段使代码混乱?
凯尔·德莱尼

1
万一您需要用setter或getter做某事。

8

键入“道具”后+ Tab+ Tab通过阿姆拉的建议,你可以立即输入属性的类型(这将替换默认int),键入另一个选项卡,然后键入属性名称(这将替换默认myProperty的)。按结束Enter


6

我觉得Alt+ R+ F是正确的从一个变量声明创建属性


2
+1这实际上是我想要的,因为它会为现有变量创建属性,谢谢!
AgentKnopf

1
嗯..它正在缩小我的文件。这在VS2012上不符合我的预期
Ammar

6

从...开始:

private int myVar;

当您选择“ myVar”并单击鼠标右键,然后选择“重构”并选择“封装字段”。

它将自动创建:

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

或者您可以通过按Ctrl+ R+ 快捷方式E


什么版本的Visual Studio?它不会出现是Visual Studio 2008中
彼得·莫特森

VS 2010附带了各种代码重构选项。您需要使用较新的版本。
EmrahEsmeroğlu2015年


3

我在IDE中喜欢的是,我能够编写一些变量,例如:

    private int id;
    private string name;
    private string version;
    private string description;
    private string status;
    private string symbol;

注意,变量名以小写字母开头,然后选择整个块,然后按Ctrl+ RCtrl+ E,Apply。这些属性以大写字母生成:

    public int Id
    {
        get
        {
            return id;
        }

        set
        {
            id = value;
        }
    }

等等


这并不能真正回答问题,对吗?
mrun

这是我一直在寻找的一种捷径,但是您是对的。我的答案集中在如何在应用快捷方式后如何准备变量以使其属性就绪而无需编辑。
Jaro64

这是我一直在寻找的一种捷径,最终出现在此页面上。最初的问题是如何真正快速地在C#中创建属性。可以肯定的是,在许多用例下,这将是您拥有私有字段并希望避免将其设为公共字段的情况(这是我的情况)。如果我写了我的私人领域,并希望尽快减少全部公共财产,我认为这在大多数情况下都可以完美地回答问题。简单。
Will Croxford


2

工具>>选项>>文本编辑器>> C#>> IntelliSense

在代码段行为部分下:

确保选择了“始终包括摘要”。

我希望它也对您有用。




0

使用VsVim的代码片段似乎有点有趣。我在这里结束时一直在寻找的快捷方式要简单得多:在输入会员名称后{g;s;

我打开了定界符自动关闭功能,因此右括号出现在上{,键入分号会触发自动完成获取和设置。

它可以在VS2013和VS2015上运行,而VS2012缺少自动花括号匹配。



0

在C#中:

private string studentName;

在分号(;)之后的行尾只需按

Ctrl + R + E

它将显示一个弹出窗口,如下所示: 在此处输入图片说明 单击“应用”或按Enter时,将生成以下属性代码:

public string StudentName
        {
            get
            {
                return studentName;
            }

            set
            {
                studentName = value;
            }
        }

在VB中:

Private _studentName As String

在行的末尾(在String之后),按下,请确保将_(下划线)放在开头,因为它将在属性的末尾添加数字:

Ctrl + R + E

出现相同的窗口: 在此处输入图片说明

在单击“应用”或按Enter时,将生成以下属性代码,其末尾带有数字,如下所示:

Public Property StudentName As String
        Get
            Return _studentName
        End Get
        Set(value As String)
            _studentName = value
        End Set
    End Property

具有数字的属性是这样的:

Private studentName As String
 Public Property StudentName1 As String
        Get
            Return studentName
        End Get
        Set(value As String)
            studentName = value
        End Set
    End Property
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.