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

.net 类设计-成员变量和属性-声明,.net,class-design,.net,Class Design,在我为自己开发一些编码“最佳实践”的过程中,我想问人们如何在类定义中安排类成员变量和getter/setter属性。我看到了两种方法 (1) 在类ad的顶部声明类成员变量,然后在单独的部分声明获取/设置这些成员变量的属性 Class MyClass { String firstName; String lastName; public string FirstName { get { return firstName; } set { firstName = v

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

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

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; }
  }

}

尽管人们倾向于遵循哪种模式可能是一个问题或个人偏好,如果可能,请给出原因。谢谢。

我更喜欢选项1,然后我围绕字段区域中的字段、属性区域中的属性、构造函数、方法等。当然,这些区域允许您折叠部分代码以进一步提高可读性(如果您只想查看构造函数示例)


这只是个人喜好,但会使课程组织得井井有条

如果您没有在属性get/set中执行任何操作,请使用“自动属性”,如果需要,您可以随时在以后更改这些属性:

public string LastName {get;set;}

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

虽然这取决于个人偏好,但我更喜欢选项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;
}

由于您没有在get/set中执行任何操作,您是否考虑过改用自动属性?然后你的问题就消失了……哎呀,我讨厌地区。当我看代码时,我想看看它在做什么。你有多少次来到一个你以前从未见过的程序,并且认为“我只想看看这个类的构造函数”?你想看到全班同学。在我看来,它不必要地混淆了代码。嘿,祝每个人都有自己的!我是一个地区爱好者,我能说什么?作为一名顾问,我一直在看代码,这些代码我没有写过,我以前从未见过,是的,在我工作的时候能够折叠类的某个方面真是太好了。好吧,每个人都有自己的;)我发现知道类的作用比知道每个成员是否是构造函数/属性/方法等更重要。你总是可以使用Ctrl+M,L折叠整个类,然后只扩展你感兴趣的方法。同意-我使用Ctrl+M,L是的,对我来说,这似乎总是向后的。我想这是你在使用它之前必须声明一些东西的时代遗留下来的东西?我认为现代IDE在结构上显示成员并按你喜欢的方式对它们进行排序,这种情况已经不复存在了。当你99%的时间在IDE中使用导航栏浏览代码时,有什么区别?@FractalizeR:老实说,我很少在IDE中使用导航栏。我倾向于尽量让我的课程很小/集中注意力,我的手放在键盘上。我上下翻页通常比把手放在鼠标上快。最有用的导航快捷键是“goto XXXX”系列,我可以通过键盘轻松访问这些快捷键。我想在某种程度上,这取决于你习惯了什么。