从变量快速创建C#属性

时间:2010-04-27 19:20:55

标签: c# automatic-properties

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

8 个答案:

答案 0 :(得分:18)

右键单击字段声明,菜单Refactor - >封装字段,你来自

int n;

int n;

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

答案 1 :(得分:11)

如果您使用的是C#3.0或更高版本(基本上是VisualStudio 2008),则可以使用自动属性。虽然这不是你所要求的,但它应该(希望)能够做到这一点。

而不是写作:

private string m_Name;

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

你可以写:

public string Name { get; set; }

这将为您提供快速,“愚蠢”(即没有检索或分配逻辑)属性,可以在您的课程中使用。如果您以后发现需要检索和赋值逻辑,只需返回并执行完整的属性声明语法,您就不必更改任何调用代码。

唯一真正的区别是你必须使用该属性来获取类中的值,因为生成了后备变量并且编译时间并且代码不可用。

答案 2 :(得分:10)

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

如果您只是不想编写自定义字段支持的属性,您可以使用auto-properties,例如,如下所示:

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或只是setter)。但是,您可以将该属性设为虚拟。

答案 3 :(得分:4)

仅供参考,只需输入“prop”(无引号)即可触发VS附带的一个片段,您只需选择最快的选项即可。

答案 4 :(得分:2)

你为什么不这样做:

public int SomeProperty { get; set; }

public int SomeOtherProperty { get; private set; }

答案 5 :(得分:0)

对于大多数事情,您可能应该在C#中使用Auto-Implemented properties。但是,如果您希望具有显式支持字段的“旧式”属性,则可以创建Visual Studio代码段以使其更易于编写。 This blog post有一个例子。

答案 6 :(得分:0)

我们可以使用 prop 快捷方式在visual studio中快速创建c#属性 我们可以使用名为c# property generator..

的工具生成c#属性,代表visual studio工具

当class中有这么多属性时,当我们创建该类的对象时, 我们必须采取一定的痛苦来分配属性,这样这个工具会在一定程度上减轻你的痛苦,这将自动为对象分配属性..

c# property assigner

答案 7 :(得分:0)

从此行:

string mytest;

选择整行“字符串mytest;”, 然后是VS菜单:“编辑”>“重构”>“封装”字段... 你得到这个:

public string Mytest { get => mytest; set => mytest = value; }