More Effective C# 中文版副标题: 改善C#程序的50个具体办法[美] Bill Wagner 著,陈黎夫 译人民邮电出版社,2010年1月第1版
More Effective C# 中文版,第3章 C#设计实践,条目26:确保属性的行为与数据类似
这个条目是非常有道理的。但是,也存在着例外:DateTime.Now 属性。这个很常用的属性显然不满足:重复地访问同样一个属性理应得到同样的结果。DateTime 类的 Now 属性是静态的,那么让我们来看看Stopwatch.Elapsed 属性吧:
01: using System;02: using System.Diagnostics;03: 04: sealed class Test05: {06: static void Main()07: {08: Console.WriteLine("OS Version: " + Environment.OSVersion);09: Console.WriteLine("CLR Version: " + Environment.Version);10: Console.WriteLine("IsHighResolution: " + Stopwatch.IsHighResolution);11: Console.WriteLine("Frequency: {0:N0}", Stopwatch.Frequency);12: var stopwatch = Stopwatch.StartNew();13: Console.WriteLine("Elapsed: " + stopwatch.Elapsed);14: Console.WriteLine("Elapsed: " + stopwatch.Elapsed);15: stopwatch.Stop();16: }17: }
该程序在 Linux 操作系统中的运行结果如下:
该程序在 Windows 操作系统中的运行结果如下:
可见 Stopwatch 类的 Elapsed 属性也不满足:重复地访问同样一个属性理应得到同样的结果。
上述程序的运行环境如下所示:
版权声明:本文为博主http://www.zuiniusn.com 原创文章,未经博主允许不得转载。
- 1楼u010786678昨天 14:06
- 谢谢小伙伴的分享,学习了`(*∩_∩*)′