.net - .NET 中自动属性的用途

标签 .net properties automatic-properties

为什么是这样:

    public string Foo {get;set;}

认为比这更好:
    public string Foo;

我这辈子都做不出来。任何人都可以透露一些信息吗?

谢谢

最佳答案

因为您可以透明地(从客户端代码的角度)更改 setter/getter 的实现,而您不能这样做,如果您直接公开基础属性(因为它不是二进制兼容的。)

但是,有一些与自动属性相关的代码味道,因为它们使公开类状态的某些部分变得非常容易,而无需再考虑。这也发生在 Java 身上,在许多项目中你会发现 get/setXxx成对地暴露内部状态(通常不需要它,“以防万一”),这使得属性基本上是公开的。

关于.net - .NET 中自动属性的用途,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3386243/

相关文章:

c# - 如何覆盖自动属性的 C# 中的设置

c# - 初始化 C# 自动属性

c# - 如何在iTextSharp中的Pdf单元格中添加一个复选框?

c# - 需要建议 : alternative to overloading "is" and "as" operators in . NET

c# - DebuggerDisplayAttribute - 它如何在评估表达式时选择语言?

java spring上下文:property-placeholder - set properties paths from placeholder

ios - Xcode 5.1.1 中没有自动下划线 ivar

.net - 在运行时创建或编辑自定义配置部分

objective-C 属性也定义为实例变量

c# - 拥有私有(private) setter 或仅定义 getter 之间有区别吗?