c# - 在包含类中,使用属性还是字段?

标签 c# properties

在包含私有(private)字段或属性的类中编写代码时,使用私有(private)字段或属性是好习惯吗?

例如,如果我有这个字段/属性对,外部 类必须使用该属性。类内部的代码怎么样?它应该使用私有(private)字段,还是也应该通过属性?

private string _foo;

protected string Foo
{
    get { return this._foo; }
}

private void SomeMethod()
{
  string dummyVariable = "snuh" + this._foo;  // So, this...
  string dummyVariable = "snuh" + this.Foo;  // ... or this?
}

在这里使用属性的一个好处是,如果 getter 中有任何逻辑,它仍然会被执行。我很想知道这里是否有可遵循的最佳实践政策。

最佳答案

使用 Auto-Implemented properties 时,您别无选择 - 您必须使用该属性,因为您无权访问生成的字段。

如果您的属性不简单并且做了一些额外的工作(验证、触发事件等...),您应该调用该属性以集中访问和逻辑。

如果您有任何其他属性(意思是没有逻辑和支持字段的简单属性),我会问为什么它们不是上述之一...

对于您提供的示例,这没什么区别 - 更重要的是与您使用这些的方式保持一致,并且真正归结为个人审美和编码风格。

关于c# - 在包含类中,使用属性还是字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10366904/

相关文章:

c# - 解构赋值 - C# 中变量的对象属性

c# - 在 C# 中执行 .NET IL 代码

c# - 将控件插入 Tab 键顺序的最佳方法?

c# - 使用动态生成的类型创建通用类的对象

java - 访问ehcache.xml中的spring环境变量

Javascript:距下一个生日的天数,从数组中对象的日期属性开始

javascript - 如何使用 'getOwnPropertyNames' 遍历 map 的内容

c# - 使用 C# 正则表达式解析域名?

c# - 为什么我可以在空引用中使用变量?

java - Java servlet 中的属性文件调用