/// <summary> /// Установка битов пересчета /// </summary> /// <param name="instance">Ссылка на объект</param> /// <param name="propertyName">Наименование поля (Шаблон: Наименование_класса.Наименование_поля)</param> /// <returns>Объединенные биты пересчета</returns> public static void SetBit(IOptionsAdjust instance, string propertyName) { if (instance == null) { return; } long newBits = instance.GetBit(propertyName); instance.OptionsAdjust = instance.OptionsAdjust | newBits; }
/// <summary> /// Запуск алгоритма пересчета по переданному полю. /// </summary> /// <param name="instance"></param> /// <param name="propertyName">Наименование поля (Шаблон: Наименование_класса.Наименование_поля)</param> public static void AdjustFromPropertyName(IOptionsAdjust instance, string propertyName) { if (instance == null) { return; } long bits = instance.GetBit(propertyName); OptionsAdjustHelper.AdjustFromBits(instance, bits); }
/// <summary> /// Запуск алгоритмов пересчета по заданной маске битов. /// </summary> /// <param name="instance"></param> /// <param name="bits">Маска битов для пересчета</param> public static void AdjustFromBits(IOptionsAdjust instance, long bits) { if (instance == null) { return; } if (bits > 0) { for (byte i = 1; i <= 64; i++) { if ((bits & (1 << i)) != 0) { instance.Adjust(i); } } } }
/// <summary> /// Запуск алгоритмов пересчета по установленным ранее битам (OptionsAdjust). /// </summary> /// <param name="instance"></param> public static void Adjust(IOptionsAdjust instance) { if (instance == null) { return; } if (instance.OptionsAdjust > 0) { for (byte i = 1; i <= 64; i++) { if ((instance.OptionsAdjust & (1 << i)) != 0) { instance.Adjust(i); } } } }