комьютер — он как джинн: выполняет всё буквально, поэтому нужно быть очень точным при изъявлении своих желаний.
С этим никто не спорит.:) Но когда deadline близко, очень сложно правильно сформулировать свою мысль перед Джином.
А особенно учесть все возможные, все невозможные и часть невероятных сценариев работы программы.
Вот поэтому мы, по мере сил и по мере возможности, пытаемся помочь вам в этом, всеми возможными способами.:)
Такой вариант плох тем, что появляются два взаимосвязанных числа вместо одного независимого. [для таких случаев хорошо бы константы делать по хорошему[но мы все понимаем, это долго и часто очень лень]]
Плюс ко всему, два данных кода не идентичны. В Вашем "исправленном" примере последний else будет выполняться в том случае, если строк меньше 20000, а мы так не хотим.
На самом деле, вариантов исправления кода много:
Самый очевидный — это поменять строки местами:
int RowsCount = DynamicErrorListControl.Instance.Plog.NumberOfRows;
if (RowsCount > 200000)
DatatableUpdateInterval = 120000; //2min
else if (RowsCount > 100000)
DatatableUpdateInterval = 60000; //1min
else if (RowsCount > 20000)
DatatableUpdateInterval = 30000; //30s
Математический:
DatatableUpdateInterval = RowsCount / 100000.0 * 60000.0
DatatableUpdateInterval = Math.Max(15000, DatatableUpdateInterval); //Нижняя граница
DatatableUpdateInterval = Math.Min(240000, DatatableUpdateInterval);//Верхняя граница
Для нас важно всё. Мы рассматриваем и развиваемся сразу в нескольких направлениях.)
Мы будем рады любым примерам ошибок которые доставляют большие неудобства или часто повторяются.
С этим никто не спорит.:) Но когда deadline близко, очень сложно правильно сформулировать свою мысль перед Джином.
А особенно учесть все возможные, все невозможные и часть невероятных сценариев работы программы.
Вот поэтому мы, по мере сил и по мере возможности, пытаемся помочь вам в этом, всеми возможными способами.:)
https://habrahabr.ru/company/pvs-studio/blog/279437/#comment_8810049
Плюс ко всему, два данных кода не идентичны. В Вашем "исправленном" примере последний else будет выполняться в том случае, если строк меньше 20000, а мы так не хотим.
На самом деле, вариантов исправления кода много:
Самый очевидный — это поменять строки местами:
int RowsCount = DynamicErrorListControl.Instance.Plog.NumberOfRows;
if (RowsCount > 200000)
DatatableUpdateInterval = 120000; //2min
else if (RowsCount > 100000)
DatatableUpdateInterval = 60000; //1min
else if (RowsCount > 20000)
DatatableUpdateInterval = 30000; //30s
Математический:
DatatableUpdateInterval = RowsCount / 100000.0 * 60000.0
DatatableUpdateInterval = Math.Max(15000, DatatableUpdateInterval); //Нижняя граница
DatatableUpdateInterval = Math.Min(240000, DatatableUpdateInterval);//Верхняя граница
Извиняюсь. Поправил.
Как следствие, свойство Count не может содержать отрицательное значение.
Мы будем рады любым примерам ошибок которые доставляют большие неудобства или часто повторяются.