/// <summary> /// propertyName必须是数值类型的属性。注意:只支持int和double类型。 /// 基于反射将给定类型对象的给定名称的属性值自减。 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="vm"></param> /// <param name="propertyName"></param> public static void Down <T>(T vm, string propertyName) where T : ViewModelBase { Type type = typeof(T); var propertyInfo = type.GetProperty(propertyName); if (propertyInfo == null) { NTMinerConsole.DevError(() => $"类型{type.FullName}不具有名称为{propertyName}的属性"); return; } if (propertyInfo.PropertyType == typeof(int)) { int value = (int)propertyInfo.GetValue(vm, null); if (value > 0) { propertyInfo.SetValue(vm, value - 1, null); } } else if (propertyInfo.PropertyType == typeof(double)) { double value = (double)propertyInfo.GetValue(vm, null); if (value > 0.1) { propertyInfo.SetValue(vm, Math.Round(value - 0.1, 2), null); } } }