【发布时间】:2018-10-25 08:18:43
【问题描述】:
考虑到在 c# 中我们对带有 getter 和 setter 的属性有特定的语法,为什么有些属性是通过方法(通常以“Get”为前缀)而不是 getter 来访问的?
例如为什么会这样:
var properties = object
.GetType()
.GetProperties();
而不是使用像这样的getter:
var properties = object
.Type
.Properties
【问题讨论】:
-
我想这源于一个历史概念,即方法应该引用动词。我尽量避免这种情况,并使用属性而不是方法。
-
没看到那个错字,谢谢@xanatos
-
您示例中的后者实际上是
property而不是method。由于 MS 指南“重”执行应该在方法而不是属性中执行 - 这可能是他们选择方法而不是道具的原因 -
您可以为
GetType创建重载方法。使用properties或auto-implemented properties是不行的。 -
@Halex 任何不只是在内存中查找值的东西。接受的答案也很好地解释了它。 Mirosofts 设计指南书中提到了这一点。
标签: .net reflection syntax properties getter