使用默认访问权限的自动实现属性而不是使用公共字段有什么好处?

Mat*_*hew 2 c# properties

可能重复:
C#:公共字段与自动属性
我是否需要使用{get; 组; 获取和设置时没有特殊操作的c#字段

考虑以下两个选项:

public int Foo { get; set; }

public int Foo;
Run Code Online (Sandbox Code Playgroud)

它们似乎在语义上是等价的,我相信它们甚至会编译成同一个IL.那么使用该物业有什么好处?看到一个公共领域让我感到不安,但我想不出使用属性语法的任何具体优势.如果将来需要显式的getter和setter,public int Foo;则可以替换为public int Foo { ... }不需要其他更改.我能想到的最好的是属性语法感觉更好,但我很难用这个理由来说服其他人.

在这种情况下使用属性语法的优点(如果有的话)是什么?

Ree*_*sey 5

主要优点是:

  1. 面向未来的API - 如果您以后需要getter或setter中的逻辑,那么您的公共API不会发生变化.
  2. 数据绑定 - 大多数数据绑定框架仅适用于Properties,而不是Fields.

  • 另外,您无法在接口上声明字段. (4认同)

归档时间:

查看次数:

1366 次

最近记录:

14 年,5 月 前