属性和字段之间的语义差异及其含义

And*_*ech 7 c# semantics

采取private string Property {get; set;}对比private string field.

请注意,两者都是私有的(因此它们不会在此类之外公开)并且该属性不使用额外的验证.

至于语义,它们有不同的含义吗?从某种意义上说,这样使用时它们是否可以互换?

当涉及到影响时,例如(微?)性能,如果你创建一个字段而不是一个属性,那就重要了,即让编译器为你处理后备字段.

Hen*_*man 3

当它们是私有的时,我知道的唯一区别是该属性不适合outref参数。

但大多数情况下,私有财产并不能带来任何优势(相对于田地),所以何必费心呢?
可能存在(微观)性能成本。我会更担心额外的混乱。