对于 C#,我讨厌写出变量然后写出所有属性。没有办法选择所有变量,右键单击并创建所有属性。
8 回答
右键单击字段声明,菜单 Refactor -> Encapsulate field 然后你从
int n;
到
int n;
public int N
{
get { return n; }
set { n = value; }
}
您在寻找代码重构工具吗?如果是这样,请查看 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 或仅 setter)提供实现。但是,您可以将属性设为虚拟。
如果您使用 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; }
这将为您提供可以在课堂上进行的快速“哑”(即没有检索或分配逻辑)属性。如果您以后发现需要检索和分配逻辑,只需返回并执行完整的属性声明语法,您就不必更改任何调用代码。
唯一真正的区别是您必须使用该属性来获取类中的值,因为支持变量是生成和编译时间的,并且对您的代码不可用。
仅供参考,只需键入“prop”(不带引号)即可触发 VS 附带的片段之一,您只需按自己的方式浏览,这是迄今为止最快的选项。
你为什么不这样做:
public int SomeProperty { get; set; }
或者
public int SomeOtherProperty { get; private set; }
?
从这一行:
string mytest;
选择整行“string mytest;”,然后选择 VS 菜单:Edit > Refactor > Encapsulate field ... 你得到这个:
public string Mytest { get => mytest; set => mytest = value; }
我们可以使用prop快捷方式和代表 Visual Studio 工具在 Visual Studio 中快速创建 C# 属性,我们可以使用名为C# 属性生成器的工具生成 C# 属性。
当类中有这么多属性时,当我们创建该类的对象时,我们必须付出一定的痛苦来分配属性,所以这个工具会在一定程度上减轻你的痛苦,这会自动为对象分配属性..