对于C#,我讨厌写出变量然后写出所有属性。没有办法选择所有变量,右键单击并创建所有属性。
答案 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中有这么多属性时,当我们创建该类的对象时, 我们必须采取一定的痛苦来分配属性,这样这个工具会在一定程度上减轻你的痛苦,这将自动为对象分配属性..
答案 7 :(得分:0)
从此行:
string mytest;
选择整行“字符串mytest;”, 然后是VS菜单:“编辑”>“重构”>“封装”字段... 你得到这个:
public string Mytest { get => mytest; set => mytest = value; }