你如何保持你的支持领域有组织?(形式/模式)

syl*_*aar 2 c# coding-style

c#3.0为我们提供了编译器生成的支持字段的getter和setter - 这真的很棒,但是很多时候你仍然需要使用支持字段.

在一个完美的世界(意见)中,你将能够做类似的事情

class MyClass {
  ... stuff ... 

  public string MyProperty {
    private string _myBackingField = "Foo";

    get { return _myBackingField; }
    set { _myBackingField = value; }
  }
}
Run Code Online (Sandbox Code Playgroud)

代替

class MyClass {
  private string _myBackingField = "Foo";

  ... stuff ...

  public string MyProperty {       
    get { return _myBackingField; }    
    set { _myBackingField = value; }
  }
}
Run Code Online (Sandbox Code Playgroud)

有没有人有接近这个的建议或技巧?或者换句话说 - 保持支持字段和属性组织的最清晰方法是什么.

Chr*_*ris 5

我倾向于将支持字段保持在顶部,但是我也使用方法变量.也许它是一些旧语言的延续,其中变量声明始终是第一步,但它似乎比我根据需要内联声明变量更有条理.

如果你不喜欢在顶部声明变量,那么我所看到的最接近你的"理想"风格的是:

private int _integer1 = 0;
public int Integer1 
{
    get {return _integer1;}
    set {_integer1 = value;}
}
Run Code Online (Sandbox Code Playgroud)


Rob*_*vey 5

我还是喜欢

class MyClass {
  private string _myBackingField = "Foo";
  private string _myOtherBackingField = "bar";

  ... stuff ...

  public string MyProperty {       
    get { return _myBackingField; }    
    set { _myBackingField = value; }
  }
  public string MyOtherProperty {       
    get { return _myOtherBackingField; }    
    set { _myOtherBackingField = value; }
  }
}
Run Code Online (Sandbox Code Playgroud)

如果缺乏接近性困扰您,您可以将每个属性的支持字段放在它所服务的属性之上.

class MyClass {

  private string _myBackingField = "Foo";
  public string MyProperty {       
    get { return _myBackingField; }    
    set { _myBackingField = value; }
  }
  private string _myOtherBackingField = "bar";
  public string MyOtherProperty {       
    get { return _myOtherBackingField; }    
    set { _myOtherBackingField = value; }
  }
}
Run Code Online (Sandbox Code Playgroud)