static void TestSetValueCache(int count = 10000000) { var user = new UserVO(); var propertyInfo = user.GetType().GetProperty("UserName"); SpeedTest.ConsoleTime("手动赋值", count, () => { user.UserName = "******"; }); SpeedTest.ConsoleTime("表达式树赋值", count, () => { CacheManger.SetValue(propertyInfo, user, "jj"); }); SpeedTest.ConsoleTime("反射赋值", count, () => { propertyInfo.SetValue(user, "jj", null); }); }
static void TestGetValueCache(int count = 1000000) { var user = new UserVO(); var propertyInfo = user.GetType().GetProperty("UserName"); SpeedTest.ConsoleTime("手动取值", count, () => { var a = user.UserName; }); SpeedTest.ConsoleTime("表达式树取值", count, () => { var a = PropertyGetCacheManger.Cache(propertyInfo, user); }); SpeedTest.ConsoleTime("反射取值", count, () => { var a = propertyInfo.GetValue(user, null); }); }
static void TestSetValueCache(int count = 10000000) { var user = new UserVO(); var propertyInfo = user.GetType().GetProperty("UserName"); SpeedTest.ConsoleTime("手动赋值", count, () => { user.UserName = "******"; }); SpeedTest.ConsoleTime("表达式树赋值", count, () => { PropertySetCacheManger.Cache(propertyInfo, user, "jj"); }); SpeedTest.ConsoleTime("反射赋值", count, () => { propertyInfo.SetValue(user, "jj", null); }); }