【发布时间】:2011-03-24 16:22:01
【问题描述】:
我知道在 C# 中,您可以轻松地创建数据类型的访问器,例如,通过执行以下操作:
public class DCCProbeData
{
public float _linearActual { get; set; }
public float _rotaryActual { get; set; }
}
但是我的同事建议我这样做:
public class DCCProbeData
{
private float _linearActual = 0f;
public float LinearActual
{
get { return _linearActual; }
set { _linearActual = value; }
}
private float _rotaryActual = 0f;
public float RotaryActual
{
get { return _rotaryActual; }
set { _rotaryActual = value; }
}
}
我的方式似乎更简单,更简洁。这两种方法有什么区别和好处?
谢谢
编辑 请注意,我的同事能够使用“类详细信息”窗格中的“重构”选项生成“第二种方式”的代码,该选项最容易在图表文件中找到。这样可以轻松添加许多属性,而无需手动创建访问器。
【问题讨论】:
-
您的同事在为您提供建议时提到了哪些好处?
-
我认为解释是“你的命名看起来很像你公开暴露内部变量。如果你想保留下划线版本供内部使用 - 将它们设为私有并提供具有良好名称的公共属性_ 字段。”
-
@Martinho 他提到了第一个使用匿名对象的事情,但我不太清楚他的意思。 @Alexei谢谢,你是对的,我应该像第二种方式一样使用属性的命名约定。
-
@Ryan:从这里的答案可以看出,没有“匿名对象”。在将短格式转换为长格式时,编译器会创建带有 无法发音的名称 的私有字段(也就是说,您无法使用它们的名称),所以也许这就是您同事的意思。
-
不要忘记使用 'prop' 然后在键盘上使用 TAB TAB :-)
标签: c# syntax properties field