【发布时间】:2013-02-01 17:13:09
【问题描述】:
可能重复:
What is the difference between a field and a property in C#?
Difference between Property and Field in C# .NET 3.5+
前段时间,我继承了一个 C# Web 应用程序,其中大多数可能是字段的类成员都以以下两种方式之一定义为属性:
private Guid id;
public Guid Id
{
get { return id; }
set { id = value; }
}
public int someValue{ get; set; }
也就是说,getter/setter 除了将值传送到私有字段或从私有字段传送值之外,不做任何事情。在这些情况下,将这些成员构建为属性与字段是否有优势[或理由]?反之亦然?
将它们更改为字段是否会违反任何潜规则或最佳实践?是否存在显着的性能差异 - 例如,以一种或另一种方式为 N 个对象的列表增加 someValue? (我目前的理解是,字段访问必然不那么复杂[和高效]。)
【问题讨论】:
-
因为这个问题没有真正的答案,所以这里不应该成为一个问题。但是想法是,如果您需要进行某种验证,该属性可以在 getter 和 setter 中轻松实现。一个领域没有那种灵活性。
-
已有许多关于属性与字段优点的讨论 - 这是另一个Properties vs. Fields: Need help grasping the uses of Properties over Fields
-
好的。 @Dustin Campbell 对所选答案 here 的评论是我迄今为止看到的唯一相关理由。
标签: c# properties field