C# 获取和私有集 vs 获取返回私有字段

Ste*_*ite 3 c#

我问自己很长一段时间,使用带有修饰符 get 和 private set 的属性与使用返回私有字段的属性有什么优点和缺点。

下面是一个例子:

public bool Example { get; private set; }
Run Code Online (Sandbox Code Playgroud)

private bool example;
public bool Example { get { return example; } }
Run Code Online (Sandbox Code Playgroud)

使用其中一种的优缺点是什么?

Aus*_*ley 5

少 1 行代码。除此之外,它们在功能上完全相同。它本质上是语法糖。

  • ...第二个示例是完全 _read-only_ 属性,而第一个 AIP 有一个私有 setter。 (3认同)
  • 不是真的,因为您仍然可以访问变量成员。真正的只读属性没有设置,只能在构造时初始化。 (2认同)