最近有时间看点书了,把157个建议在重新看一遍,代码都调试一遍。当我看到第15个建议的时候有些出入,就记录下来,欢迎大家来探讨。

   第十五条建议是,使用dynamic简化反射的使用,没有说明具体的条件。dynamic的确可以简化反射的使用,但是性能上并不是不分条件的。

   我按着书上的代码,原封不动的敲了一遍,如下

 

平面设计培训,网页设计培训,美工培训,游戏开发,动画培训

 1 class Program 2     { 3         static void Main(string[] args) 4         { 5             int times = 1; 6             DynamicSample dynamicSample = new DynamicSample(); 7             var addMethod = typeof(DynamicSample).GetMethod("Add"); 8  9             Stopwatch watch1 = Stopwatch.StartNew();10             int result = 0;11             for (int i = 0; i < times; i++)12             {13                 result = (int)addMethod.Invoke(dynamicSample, new object[] { 1, 2 });14             }15             Console.WriteLine(string.Format("正常的反射耗时:{0}毫秒", watch1.ElapsedMilliseconds));16 17             Console.WriteLine("正常反射的结果:"+resu