【发布时间】:2012-03-04 18:41:33
【问题描述】:
我有时会使用 {get; set;} 在 c# 中,因为有人告诉我,有时我正在使用的技术需要它们(linq2sql?)
我想知道为什么有时一项技术可能需要一个带有 getter 和 setter 的私有字段(因此简写是一个很好的快捷方式)而不是一个公共字段。
我知道在 getter 或 setter 中包含逻辑是有道理的,但对于空的这一点不太确定?
答案和这篇文章一样吗,如果是,请告诉我!
What is exactly the point of auto-generating getters/setters for object fields in Scala?
【问题讨论】:
-
同样的答案。它允许您稍后更改这些属性实现,而不会破坏任何其他使用它们的代码。你只是还不知道你是否需要这样做。
-
那些库只是强迫你使用好的实践。这不难理解吧?
-
我认为所有这些想法在旧式 API(常规旧 dll 和 sdk)中变得比在现代 LOB 应用程序中更相关。当属性被更改或删除时,我们仍然会修改大量文件。如果您在域周围设置了边界,则在 LOB 中;例如业务领域、数据访问等...,您最终会得到很多空的 setter 和 getter,由于上述所有原因,您永远不需要更改它们。这些理由在理论上是有效的。使用 C# 并没有那么糟糕,但是像 Java 和 C++ 这样的东西会使代码变得臃肿而且真的很痛。
标签: c# setter getter auto-generate