如何在Visual Studio中生成getter和setter?
通过“生成”,我的意思是自动生成特定选定(一组)variables所必需的代码。
但是,对于良好做法的任何更明确的解释或评论是值得欢迎的。
而不是使用ctrl + k ,你也可以只键入prop
,然后点击tab键两次
Visual Studio也有一个function,将从一个私有variables生成一个属性。
如果你右键点击一个variables,在popup的上下文菜单中点击“Refactor”项目。 然后select封装字段。 这将为variables创build一个getter / setter属性。
我不太喜欢这种技术,因为如果你必须创build大量的getter / setter,那么使用它会有点尴尬,并且会把属性直接放在private字段的下面,这会让我感到困惑,因为我通常会所有我的私人领域分组在一起,这个Visual Studiofunction打破了我的class级格式。
通过生成,你的意思是自动生成? 如果这不是你的意思:
Visual Studio 2008有这个最简单的实现:
public PropertyType PropertyName { get; set; }
在后台创build一个隐含的实例variables,您的财产存储和检索。
但是,如果你想在你的属性中join更多的逻辑,你必须有一个实例variables:
private PropertyType _property; public PropertyType PropertyName { get { //logic here return _property; } set { //logic here _property = value; } }
早期版本的Visual Studio也一直使用这种方法。
你也可以使用“propfull”并打两次TAB ,variables和属性get和set会被生成。
我使用Visual Studio 2013专业版。
- 将光标放在实例variables的行上。
- 按组合键Ctrl + R , Ctrl + E或单击鼠标右键,select上下文菜单
Refactor \ Encapsulate Field...
然后按OK
。 - 在
Preview Reference Changes - Encapsulate Field
诊断日志中,按下Apply
button。 - 这是结果:
您还可以将光标放置在select属性上 ,使用菜单编辑\重构\封装字段…
- 其他信息:自C#3.0(2007年11月19日)以来,我们可以使用自动实现的属性 (这只是语法糖 )
和
private int productID; public int ProductID { get { return productID; } set { productID = value; } }
成为
public int ProductID { get; set; }
如果您使用的是Visual Studio 2005,则可以使用insert snippet命令快速创buildsetter / getter。 右键点击你的代码,点击插入片段( Ctrl + k , x ),然后从列表中select“prop”。 希望这可以帮助。
如果你使用的是ReSharper,进入ReSharper菜单 – >代码 – >生成…(或者在周围的类中点击Alt + Ins ),你将得到所有的生成getter和/或setter的选项可以想到:-)
使用propfull
关键字。
它会生成属性和variables
我知道这比太阳还年长,但是我想我会把这个作为我的回答,因为它就像这样做。
我所做的是创build我自己的片段,只添加{get; set;}
{get; set;}
。 我只是因为我发现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>
有了这个,你可以手动键入你的PropType和PropName,然后inputget > tab
,它会添加get set。 它不是什么神奇的东西,但是因为我倾向于首先键入我的访问修饰符,所以我最好完成这个名称和types。
我没有在我的机器上安装Visual Studio(而且我正在使用Linux),但我确实记得有一个向导隐藏在可以访问类构build器的某个菜单中。
使用此向导,您可以定义所有类的详细信息,包括方法和属性。 如果我记得好,有一个选项可以让VS自动为你创buildsetter和getters。
我知道这是相当模糊的,但检查出来,你可能会发现它。
除了“prop”片段和自动属性之外,还有一个重构选项可让您select现有字段并通过属性将其公开。 另外,如果你不喜欢“道具”的实现,你可以创build自己的片段。 另外,像resharper这样的第三方重构工具将为您提供更多的function,并使创build更高级的片段变得更加容易。 如果你负担得起,我会推荐Resharper。
http://msdn.microsoft.com/en-us/library/f7d3wz0k(VS.80).aspx http://www.jetbrains.com/
在Visual Studio Community Edition 2015中,您可以select所需的所有字段,然后按ctrl + .
自动生成属性。 你必须select是否要使用该属性,而不是字段。
代表visual studio的工具,我们可以使用在线工具轻松生成c#属性。 c#propery生成器。