最近有时间看点书了,把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