【发布时间】:2010-04-27 19:20:55
【问题描述】:
对于 C#,我讨厌写出变量然后写出所有属性。有没有办法选择所有变量,右键创建所有属性。
【问题讨论】:
-
您使用的是哪个版本的 .Net?
对于 C#,我讨厌写出变量然后写出所有属性。有没有办法选择所有变量,右键创建所有属性。
【问题讨论】:
右击字段声明,菜单Refactor -> Encapsulate field 你从
int n;
到
int n;
public int N
{
get { return n; }
set { n = value; }
}
【讨论】:
您是否在寻找代码重构工具?如果是,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)提供实现。但是,您可以将属性设为虚拟。
【讨论】:
如果您使用的是 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 附带的 sn-ps 之一,您只需按自己的方式浏览,这是迄今为止最快的选择。
【讨论】:
你为什么不这样做:
public int SomeProperty { get; set; }
或
public int SomeOtherProperty { get; private set; }
?
【讨论】:
从这一行开始:
string mytest;
选择整行 "string mytest;", 然后VS菜单:编辑>重构>封装字段... 你得到这个:
public string Mytest { get => mytest; set => mytest = value; }
【讨论】:
我们可以使用 prop 快捷方式在 Visual Studio 中快速创建 c# 属性 并且代表 Visual Studio 工具,我们可以使用名为 c# property generator.. 的工具生成 c# 属性
当类中有这么多属性时,当我们创建该类的对象时, 我们必须付出一定的痛苦来分配属性,所以这个工具会在一定程度上减轻你的痛苦,这会自动为对象分配属性..
【讨论】:
对于大多数事情,您可能应该在 C# 中使用 Auto-Implemented properties。但是,如果您想要具有显式支持字段的“旧式”属性,您可以创建一个 Visual Studio 代码 sn-p 以使它们更易于编写。 This blog post 有一个例子。
【讨论】: