人们使用 get 属性的原因是什么?放; 而不是字段?

Kos*_*mos 0 c# field properties

我经常在类中看到属性,而不是字段。它看起来像这样:

class TestClass
{
    public ulong Id { get; set; }
    public string Description { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

人们为什么这样做?他们可以改用字段。我在那里至少看到一个专业人士 - 我们可以将带有ref关键字的字段传递给函数。是否有任何专业人士出于财产或其他原因像那样使用它们?

PMF*_*PMF 5

主要原因是封装 - 值只能通过相应的属性更改,即使您后来决定该属性不应仅返回值,情况仍然如此。也许您发现您想要在值更改时触发事件?如果你有房产,那很容易。如果你有一个公共领域,你需要做出重大改变。

此外,属性可以是虚拟的,也可以在接口中声明。它们可以被声明为只读。

哦,它有助于调试:如果您想知道谁在更改您的值(意外),您可以在“集合”上设置断点。