首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >你是如何组织你的支持字段的?(样式/模式)

你是如何组织你的支持字段的?(样式/模式)
EN

Stack Overflow用户
提问于 2009-11-10 00:35:51
回答 6查看 481关注 0票数 3

c# 3.0为我们提供了带有编译器生成的支持字段的getters和setters -这真的很棒,但在很多情况下,你仍然需要使用支持字段。

在一个完美的世界(观点)中,你可以这样做

代码语言:javascript
复制
class MyClass {
  ... stuff ... 

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

    get { return _myBackingField; }
    set { _myBackingField = value; }
  }
}

而不是

代码语言:javascript
复制
class MyClass {
  private string _myBackingField = "Foo";

  ... stuff ...

  public string MyProperty {       
    get { return _myBackingField; }    
    set { _myBackingField = value; }
  }
}

有没有人有类似的建议或技术?或者换一种方式--什么是最清晰的方法来保持你的支持字段和属性的组织。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-11-10 00:40:03

我还是更喜欢

代码语言:javascript
复制
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; }
  }
}

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

代码语言:javascript
复制
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; }
  }
}
票数 5
EN

Stack Overflow用户

发布于 2009-11-10 00:39:02

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

如果你不喜欢在顶部声明变量,我见过的最接近你的“理想”风格是:

代码语言:javascript
复制
private int _integer1 = 0;
public int Integer1 
{
    get {return _integer1;}
    set {_integer1 = value;}
}
票数 5
EN

Stack Overflow用户

发布于 2009-11-10 14:56:11

我喜欢的是:

代码语言:javascript
复制
public int Integer1 
{
    get {return _integer1;}
    set {_integer1 = value;}
}
private int _integer1 = 0;

为什么?

  • ,因为属性比支持字段重要得多,所以应该将其作为第一个字段读取。
  • 如果您对属性进行注释,那么哪个更好?

代码语言:javascript
复制
private int _integer1 = 0;
///<summary>
/// this is my property, enjoy it
///</summary>
public int Integer1 
{
    get {return _integer1;}
    set {_integer1 = value;}
}

代码语言:javascript
复制
///<summary>
/// this is my property, enjoy it
///</summary>
public int Integer1 
{
    get {return _integer1;}
    set {_integer1 = value;}
}
private int _integer1 = 0;

在末尾加上支持字段的方法更具可读性。将属性应用于属性时也是如此。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1702180

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档