2010-04-27 97 views
6

对于C#C#的属性,我讨厌写出来的变量,然后写出所有属性。没有办法选择所有变量,右键单击并创建所有属性。快速创建变量

+0

您正在使用哪种版本的.Net? – adrianbanks 2010-04-27 19:24:19

回答

10

您是否在寻找一个代码重构工具?如果是这样,check out ReSharper。它提供了一个简单的将简单的现场支持的属性转换为自动属性,反之亦然。

如果你只是不想写的自定义字段支持的属性,可以使用auto-properties,FPOR例如,像这样:

public string MyProperty { get; set; } // generates an auto-property 

这相当于:

private string m_MyProperty; 
public string MyProperty 
{ 
    get { return m_MyProperty; } 
    set { m_MyProperty = value; } 
} 

你甚至可以使得setter和getter的区别:

public string MyProperty { get; private set; } 

如果你选择使用自动性能,要知道,你不能访问底层的领域,也不能提供一个实现的只是一个部分(就在getter或只是二传手)。但是,您可以使物业变成虚拟。

+0

没有什么比免费广告。 – QueueHammer 2010-04-27 19:24:38

+1

ReSharper和CodeRush值得传福音。 – 2010-04-27 19:29:38

+3

在这种情况下并不是真正的,因为Visual Studio已经构建了用于将属性提升为属性的重构(右键单击>重构>封装字段) – 2010-04-27 19:40:37

2

你为什么不这样做的:

public int SomeProperty { get; set; } 

public int SomeOtherProperty { get; private set; } 

11

如果您正在使用C#3.0或以上(2008年VisualStudio的,本质上),你可以使用自动属性。虽然这不完全是你要求的,但它应该(希望)能够做到这一点。

,而不是写:

private string m_Name; 

public string Name 
{ 
    get { return m_Name; } 
    set { m_Name = value; } 
} 

你可以这样写:

public string Name { get; set; } 

这会给你快,“哑”(即没有检索或分配逻辑)属性,可以去你的类。如果您发现以后需要检索和分配逻辑,只需返回并执行完整的属性声明语法即可,而不必更改任何调用代码。

唯一真正的区别是,你必须使用属性,让您的类中的值,如产生后盾变量,编译时和无法使用你的代码。

18

右键单击该字段声明,菜单重构 - >封装字段,你从

int n; 

int n; 

public int N 
{ 
    get { return n; } 
    set { n = value; } 
} 
+0

我找不到“封装”......只是它的专业功能? – LightStriker 2013-12-15 21:52:34

4

仅供参考,只需键入“托”(不含引号)触发的一个VS附带的片段,并且您只是通过它,是目前最快的选择。

0

你或许应该在C#中使用Auto-Implemented properties大多数事情。但是,如果您希望具有明确后台字段的“旧式”属性,则可以创建Visual Studio代码片段以使它们更容易编写。 This blog post就是一个例子。

0

我们可以使用道具快捷 和代表的Visual Studio工具,我们可以生成使用一种称为工具的C#特性的快速创建在Visual Studio C#性能c# property generator..

当类中有如此多的特性,当我们创建该类的对象, 我们必须采取一定的疼痛分配属性,以便该工具会减少你的痛苦在一定程度上与此属性将自动分配对象..

c# property assigner