汽车房产有什么意义?

Che*_*ter 16 c# automatic-properties

这可能听起来很幼稚,但......

class Widget
{
    public int Foo { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

这很酷,并且使用支持字段来节省一些样板,但在那时,它不等同于简单:

class Widget
{
    public int Foo;
}
Run Code Online (Sandbox Code Playgroud)

看起来它只不过是一个公共领域,尽管我认为它看起来与众不同.但是,从设计的角度来看,如果不利用封装,使用属性有什么好处?

And*_*are 24

因为它使您有可能在以后添加封装逻辑而无需更改类的元数据.

使用属性被认为是最佳实践 - 自动实现的属性旨在消除编写属性的繁琐,以鼓励开发人员遵循此最佳实践

  • 在任何其他人可能正在使用您的代码的平台上,这是一件大事.拥有属性与公共字段会对其他代码访问该值的方式产生影响.至少,它需要重新编译(而不是简单地放入新的二进制文件).它可能需要重建代理类等.如果您确定没有其他人会使用您的课程(包括您公司内的其他团队),那么这可能不是问题.但除此之外,你应该坚持最佳实践. (10认同)

Eri*_*ert 10

除了到目前为止发布的其他好的答案:

  • 很容易快速创建一个private-setter-public-getter属性,这可以说是一个比公共只读字段更好的做法,用于创建不可变数据类型.