阅读此博客文章后:http://wekeroad.com/post/4069048840/when-should-a-method-be-a-property,
我想知道为什么微软选择C#:
DateTime aDt = DateTime.Now;
Run Code Online (Sandbox Code Playgroud)
代替
DateTime aDt = DateTime.Now();
Run Code Online (Sandbox Code Playgroud)
DateTime.Now是非确定方法/属性的完美示例.你知道这个设计有什么理由吗?
或者,如果这只是一个小错误?
dev*_*tal 48
我相信通过C#的CLR,Jeffrey Richter提到DateTime.Now是一个错误.
System.DateTime类具有readonly Now属性,该属性返回当前日期和时间.每次查询此属性时,它将返回不同的值.这是一个错误,Microsoft希望他们可以通过将Now设置为方法而不是属性来修复该类.
CLR通过C#第3版 - 第243页
它实际上是确定性的; 它的输出不是随机的,而是基于可预测的东西.
"当前时间"一直在变化; 因此,为了与每次调用相对"相同",该值必须改变,以便每次调用它时,它返回当前时间.
编辑:
这只是发生在我身上:当然,如果某些内容在过渡期间更改了属性值,则对属性getter的两次后续调用可能会返回不同的结果.属性不应该是Constants.
所以,这就是(概念上)发生的事情DateTime.Now; 它的值在后续调用之间发生变化.
| 归档时间: |
|
| 查看次数: |
4270 次 |
| 最近记录: |