类设计 - 成员变量和属性 - 声明

时间:2011-04-27 20:49:19

标签: .net class-design

在我为自己开发一些编码“最佳实践”的过程中,我想问一下人们如何在类定义中安排类成员变量和getter / setter属性。我看到它有两种方式......

(1)在类广告的顶部声明类成员变量,然后在单独的部分声明获取/设置这些成员变量的属性。

Class MyClass
{
  String firstName;
  String lastName;

  public string FirstName
  {
    get { return firstName; }
    set { firstName = value; }
  }

  public string LastName
  {
    get { return lastName; }
    set { lastName = value; }
  }

}

(2)在类的顶部声明类成员变量,并在变量声明的正下方定义get / set属性。

Class MyClass
{
  String firstName;
  public string FirstName
  {
    get { return firstName; }
    set { firstName = value; }
  }

  String lastName;
  public string LastName
  {
    get { return lastName; }
    set { lastName = value; }
  }

}

虽然这可能是一个问题或个人偏好,人们倾向于遵循哪种模式,如果可能的话,请说明原因。感谢。

3 个答案:

答案 0 :(得分:2)

如果您没有在属性get / sets中执行任何操作,请使用自动属性,如果需要,您可以随时更改它们:

public string LastName {get;set;}

就个人而言,我喜欢将所有成员变量放在类的底部,遵循客户感兴趣的东西(即公共内容)应该位于文件顶部附近。很多人似乎更喜欢把成员放在最顶层,但对我来说似乎总是有点倒退:)

答案 1 :(得分:0)

我更喜欢选项编号1,然后我在Fields区域中包围字段,在Properties区域中包含属性,构造函数,方法等等。当然,区域允许您折叠部分代码以进一步提高可读性(如果你只想看一下构造函数。)

只是个人偏好,但课程组织得很好。

答案 2 :(得分:0)

虽然这取决于个人喜好,但我更喜欢选项1,但私人会员更喜欢。推理:API比实施更重要:

class MyClass
{
  public string FirstName
  {
    get { return firstName; }
    set { firstName = value; }
  }

  public string LastName
  {
    get { return lastName; }
    set { lastName = value; }
  }

  String firstName;
  String lastName;
}