在包含类,使用属性或字段?

在包含它们的类中编写代码时,使用私有字段或属性是一种好习惯吗?

例如,如果我有这个字段/属性对,则此类之外的类必须使用该属性。 课堂的代码怎么样? 它应该使用私人领域,还是应该通过财产?

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中有任何逻辑,它仍然会被执行。 我很想知道这里是否有最佳实践政策。

使用自动实现的属性时 ,您无法选择 – 您必须使用该属性,因为您无权访问生成的字段。

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

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

通过你给出的例子,它没什么区别 – 与你如何使用它们保持一致更重要,并且真正归结为个人美学和编码风格。