为什么是这样:
public string Foo {get;set;}
认为比这更好:
public string Foo;
我这辈子都做不出来。任何人都可以透露一些信息吗?
谢谢
最佳答案
因为您可以透明地(从客户端代码的角度)更改 setter/getter 的实现,而您不能这样做,如果您直接公开基础属性(因为它不是二进制兼容的。)
但是,有一些与自动属性相关的代码味道,因为它们使公开类状态的某些部分变得非常容易,而无需再考虑。这也发生在 Java 身上,在许多项目中你会发现 get/setXxx
成对地暴露内部状态(通常不需要它,“以防万一”),这使得属性基本上是公开的。
关于.net - .NET 中自动属性的用途,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3386243/