【发布时间】:2011-04-21 17:44:45
【问题描述】:
我见过一些人用 C# 非常快地创建属性,但是他们是怎么做到的呢?
Visual Studio(目前使用 Visual Studio 2010)中提供哪些快捷方式来创建属性?
我正在使用 C#。
例如,
public string myString {get;set;}
【问题讨论】:
标签: c# visual-studio properties code-snippets shortcut
我见过一些人用 C# 非常快地创建属性,但是他们是怎么做到的呢?
Visual Studio(目前使用 Visual Studio 2010)中提供哪些快捷方式来创建属性?
我正在使用 C#。
例如,
public string myString {get;set;}
【问题讨论】:
标签: c# visual-studio properties code-snippets shortcut
您可以键入“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;}
}
【讨论】:
protected 而不是 private。
除了Amra's answer,你可以通过键入找到其他sn-ps
Ctrl + K, Ctrl + X
在我的 Visual Studio 中映射到 Edit.InsertSnippet 并向您显示可用的 sn-ps 的完整列表。
还请记住,您可以使用片段管理器配置自己的 sn-ps,该片段管理器位于 Tools 菜单 Code Snippets Manager... 中。
基本上,您创建一个文件 *.snippet 并使用代码片段管理器中的导入按钮将其添加到 Visual Studio。
如需完整教程,您可以访问文档; Walkthrough: Create a code snippet.
在 Visual Studio Code 中,sn-ps 的处理方式与在 Visual Studio 中略有不同。您可以通过键入 Ctrl + Shift + P 并键入 snippet 来访问所有 sn-ps。应该有两个选项,Insert Snippet 和 Preferences: Configure User Snippets。
前者从您的 sn-ps 列表中插入一个 sn-p(使用您可以在状态栏中看到的语言模式),而后者您可以为任何语言模式创建自己的 sn-ps。
如果您知道短名称,您只需键入它并使用 Tab 来展开 sn-p。要插入 C# 属性,您可以使用三个可用的 sn-ps,prop、propfull 和 propg,用于不同的目的。
【讨论】:
将光标放在您的字段 private int _i; 内,然后编辑菜单或 RMB - 重构 - 封装字段... (CtrlR, CtrlE) 创建标准属性访问器。
【讨论】:
键入“propfull”。使用起来要好很多,而且会生成属性和私有变量。
键入“propfull”,然后键入两次 TAB。
【讨论】:
按照 Amra 的建议输入 "prop" + Tab + Tab 后,
您可以立即键入属性的类型(将替换默认的int),键入另一个选项卡并键入属性名称(将替换默认的 MyProperty)。按 Enter 完成。
【讨论】:
我认为 Alt+R+F 是从变量声明创建属性的正确方法
【讨论】:
开始于:
private int myVar;
当您选择“myVar”并右键单击然后选择“重构”并选择“封装字段”。
它会自动创建:
{
get { return myVar; }
set { myVar = value; }
}
或者您可以通过按 Ctrl + R + E 来快捷方式。
【讨论】:
我喜欢 IDE 中的一点是我能够编写一些变量,例如:
private int id;
private string name;
private string version;
private string description;
private string status;
private string symbol;
注意,变量名以小写字母开头,然后选中整个块,按Ctrl+R,Ctrl+ E,应用。属性以大写字母生成:
public int Id
{
get
{
return id;
}
set
{
id = value;
}
}
等等
【讨论】:
在 Visual Studio 中编写时,
public ServiceTypesEnum Type { get; set; }
public string TypeString { get { return this.Type.ToString();}}
ReSharper 会不断建议将其转换为:
public string TypeString => Type.ToString();
【讨论】:
前往
工具 >> 选项 >> 文本编辑器 >> C# >> IntelliSense
在片段行为部分下:
确保选中“始终包含 sn-ps”。
我希望它也对你有用。
【讨论】:
键入 P + Tab + Tab。
更改数据类型,按TAB,更改属性名,按End + Enter。
【讨论】:
ReSharper 在其广泛的功能集中提供property generation。 (不过这并不便宜,除非你在做一个开源项目。)
【讨论】:
如果您使用的是 Visual Studio 2013、2015 或更高版本,只需点击下面的链接。它将为您提供 Visual Studio 中的完整快捷方式!
【讨论】:
使用 VsVim 的代码 sn-ps 似乎有点有趣。当我最终来到这里时,我正在寻找的快捷方式要简单得多:在成员名称类型之后 {g;s kbd>;
我打开了分隔符自动关闭,所以右大括号出现在 { 上,输入分号会触发 get 和 set 的自动完成。
适用于VS2013和VS2015,VS2012只是缺少自动大括号匹配。
【讨论】:
在 Visual Studio 2017 社区中,键是 ctrl + 。
【讨论】:
在 C# 中:
private string studentName;
分号后的行尾(;) 只需按下
Ctrl + R + E
它将显示一个弹出窗口,如下所示: 单击 Apply 或按 ENTER 将生成以下属性代码:
public string StudentName
{
get
{
return studentName;
}
set
{
studentName = value;
}
}
在 VB 中:
Private _studentName As String
在行尾(字符串后)按,确保将_(下划线)放在开头,因为它会在属性末尾添加数字:
Ctrl + R + E
点击 Apply 或按下 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
【讨论】: